相关疑难解决方法(0)

在块/ lambda中产生麻烦

我有以下Ruby代码:

# func1 generates a sequence of items derived from x
# func2 does something with the items generated by func1
def test(x, func1, func2)
    func1.call(x) do | y |
        func2.call(y)
    end
end

func1 = lambda do | x |
    for i in 1 .. 5
        yield x * i
    end
end

func2 = lambda do | y |
    puts y
end


test(2, func1, func2) # Should print '2', '4', '6', '8', and '10'
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用.

test.rb:11: no block given (LocalJumpError) …
Run Code Online (Sandbox Code Playgroud)

ruby lambda yield block

8
推荐指数
1
解决办法
3042
查看次数

标签 统计

block ×1

lambda ×1

ruby ×1

yield ×1