【发布时间】:2015-12-23 14:43:39
【问题描述】:
我正在学习 Ruby 中符号的使用,并意识到它们主要用作对变量的引用、哈希表中的键,甚至是在方法中发送块的一种方式。
我的问题是,当我在方法中使用它们时,究竟是什么符号,例如:+:-:*?
例如使用:+ 对数组中的所有值求和:
puts [1,2,3].reduce(:+)
=> 6
给出与以下相同的结果:
puts [1,2,3].reduce {|sum, i| sum += i}
=> 6
如果我创建自己的 :+
版本a = lambda {|sum,i| sum += i}
puts [1,2,3].reduce(&a)
=> 6
因此,我的第一个想法是 :+ 将 {|sum, i| sum += i} 引用为明确的块,但我很难找到信息来确认这一点。
【问题讨论】:
-
感谢您的链接!