@thebye85
i++是非原子操作,你只能通过其他手段来保证咯
				
		 
	
			re: Scala 的快速排序 Johnny Jian 2009-08-14 22:44   
			@Net4J
赞成
同样的程序用Groovy写:
def sort(xs) {
  if (xs.size() <= 1)
    xs
  else {
    def pivot = xs[xs.size() / 2 as int]
    sort(xs.findAll { it < pivot }) +
         xs.findAll { it == pivot } +
    sort(xs.findAll { it > pivot })
  }
}
def array = [123, 343, 5435, 23, 3213]
println array
array = sort(array)
println array
或者用groupBy方法:
def sort(xs) {
  if (!xs)
    []
  else {
    def pivot = xs[xs.size() / 2 as int]
    def m = xs.groupBy { it <=> pivot }
    sort(m[-1]) + m[0] + sort(m[1])
  }
}
def array = [123, 343, 5435, 23, 3213]
println array
array = sort(array)
println array
				
		 
	
			re: Scala 的快速排序 Johnny Jian 2009-08-13 10:19   
			Console.println("排序前的结果");
arrays.foreach((array: Int ) => println(array))
=>
println("排序前的结果")
arrays.foreach(println)
				
		 
	
			
			@山风小子
补充一个call的优点:与dump这个变量是松耦合的
def dump = { ... ->
...
call(...)
...
}
def closure = dump
dump = anotherClosure // 即使dump被赋为另外一个闭包也不会影响原来的闭包
				
		 
	
			
			@山风小子
各有什么利弊?可以分析一下吗?谢谢^_^
				
		 
	
			
			def dump 
dump = { File context, int depth, Stack levels ->
    ...
            dump(file, depth, levels)
    ...
}
不是可以写成
def dump = { File context, int depth, Stack levels ->
    ...
            call(file, depth, levels)
    ...
}
吗?我在博客里也有写过:
http://johnnyjian.javaeye.com/blog/260028 
	
			re: 关于for里面使用变量对性能的影响 Johnny Jian 2009-03-27 12:31