scala定义ruby中的times方法

2011-12-21 10:21:47.0

在Ruby中int类有个times方法,大概使用方式是:

5 times{pritln("hello world"}

将打印出5次hello world

在scala中类似的使用方法是

(1 to 5).foreach(println("hello world")

不过还是不如ruby的使用直观

下面我们可以通过scala强大的implicit 翻译过来就是隐式转换来实现这个功能,scala的隐式转换就好像js.protype给原生类加上新的方法

ruby中each和collect的区别

2010-08-05 16:49:11.0

ruby中的each迭代和collect迭代功能使用非常广泛,但是不是很明白两者的区别,去网络上找了下两者的区别,先看下示例代码:

irb(main):006:0> arr1 = [1,2,3]
=> [1, 2, 3]
irb(main):007:0> arr1.each {|i| i*=2 }
=> [1, 2, 3]
irb(main):008:0> arr1.each {|i| puts i*2 }
2
4
6
=> [1, 2, 3]
#------------------------------------------------------
arr2 = [1,2,3]
irb(main):010:0> arr2.collect {|i| i*2 }
=> [2, 4, 6]