我正在学习 Rails 并关注这个线程 https://stackoverflow.com/questions/1961030。我被困住了to_proc
方法。我认为符号只是字符串的替代品(它们就像字符串,但在内存方面更便宜)。如果我还缺少任何其他符号,请告诉我。请简单解释一下什么to_proc
意味着什么以及它的用途。
有些方法需要一个块,并且这种模式经常出现在块中:
{|x| x.foo}
人们希望以更简洁的方式来写它。为了做到这一点,他们使用了以下组合:符号、方法Symbol#to_proc
、隐式类转换,以及&
操作员。如果你把&
在一个Proc
参数位置的实例,将被解释为一个块。如果您组合除Proc
实例与&
,然后隐式类转换将尝试将其转换为Proc
实例使用to_proc
在该对象上定义的方法(如果有)。如果出现Symbol
实例,to_proc
以这种方式工作:
:foo.to_proc # => ->x{x.foo}
例如,假设您写:
bar(&:foo)
The &
运算符与:foo
,这不是一个Proc
实例,因此隐式类转换适用Symbol#to_proc
给它,这给了->x{x.foo}
. The &
现在适用于此并被解释为一个块,它给出:
bar{|x| x.foo}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)