查看完整版本: 这个“map”是怎么用的啊?

hexawing 2008-8-26 00:05

这个“map”是怎么用的啊?

[code]validates_inclusion_of :pay_type, :in => PAYMENT_TYPES.map{|disp, value|value}[/code]Google“ruby 语言 map”而未得,只好来求助各位高手了……

Hozaka 2008-8-26 01:40

方法定义在 Enumerable#map ,所有可迭代对象混入该模块,比如 Hash 和 Array,作用是从每次迭代中取得值,进行 block 中的运算,最后将运算结果返回作为一个新的 Array[code]ary = [1, 2, 3]
ary.map { |item| item * 2 } # => [2, 4, 6], execute "*2" on each item
hash = { :a => 1, :b => 2 }\
hash.map { |key, value| value * 2 }
# => [2, 4]
# execute "*2" on the value of each key / value pair[/code]

hexawing 2008-8-26 19:57

明白了,谢谢LS的同学!

zhangwei 2008-8-26 21:37

朋友你才入门呢,加油

aztack 2008-9-2 14:04

map 是数学中的“映射”
这里是一一映射
把一个集合中的元素映射为另一个集合
irb(main):027:0> a=[1,2,3,4]
=> [1, 2, 3, 4]
irb(main):028:0> b = a.map!{|e|e+1}#y=x+1
=> [2, 3, 4, 5]
irb(main):029:0>

上面将集合a中的元素x通过方程 y = x+1 映射到另一个集合 b

[[i] 本帖最后由 aztack 于 2008-9-2 14:07 编辑 [/i]]
页: [1]
查看完整版本: 这个“map”是怎么用的啊?