当前位置:  开发笔记 > 后端 > 正文

使用符号引用Ruby中的块,例如:+,: - ,:*

如何解决《使用符号引用Ruby中的块,例如:+,:-,:*》经验,为你挑选了1个好方法。

我正在学习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}作为一个明确的块,但我很难找到确认的信息.



1> Sergio Tulen..:

传递给的符号reduce将被解释为要在每个元素上调用的方法的名称.所以这

collection.reduce(:foo)

相当于此

collection.reduce { |memo, element| memo.foo(element) }

它与sums一起使用的原因是+operator只是一个数字方法.

 1.+(3) # => 4

因此我的第一个想法是:+引用{| sum,i | sum + = i}作为显式块

不确定你的意思,但:+肯定不会引用这个块.或任何阻止.或任何东西.

符号只是名称.他们没有指向任何东西.确定它们的含义取决于使用它们的代码.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有