【发布时间】:2014-07-11 10:42:05
【问题描述】:
给定,
def wrapper &block
(1..5).inject yield
end
proc = Proc.new {|sum, n| sum + n }
为什么我不能打这个电话?
wrapper &proc
=> NoMethodError: undefined method `+' for nil:NilClass
当查看内部时,我看到注入无法分配备忘录或 obj,因为将 proc 重写为 proc = Proc.new {|memo, obj| puts memo ; puts obj } 返回 10 次迭代,什么都没有。我还注意到(1..5).inject 只接受一个参数,它作为初始备忘录传入的内容,从技术上讲,它不会将块作为真正的参数。
【问题讨论】:
标签: ruby