我知道我们在方法的参数前面使用 & 号是为了避免使用 yield,如果它在它的方式中没有找到一个块,它会输出一个错误。
但是,我看到有时我们在调用方法时在参数前面使用 & ,以便将 proc 转换回块。最终会发生 2 个 & 符号,一个用于将块转换为 proc,第二个用于相反。
怎么样?!我们什么时候需要将 & 号用于从 proc 中取回一个块,为什么?
我希望我已经清楚了,因为不是英语母语可能会对我提出困难的问题变得苛刻。
例子
我从 CodeSchool 的幻灯片中获取了这个示例,该幻灯片可在http://courseware.codeschool.com/ruby_bits_2/ruby_bits_2_level_1.pdf上找到。
class Timeline
attr_accessor :tweets
def each(&block)
tweets.each(&block)
end
end