我想编写一段代码,满足以下要求:
SomeClass.new.execute(method) == 3
我有:
class SomeClass
def execute(method)
def method
yield
end
end
end
method = 1+2
我得到了nil
。关于yield我仍然非常困惑。非常感谢您的任何帮助。
yield
时使用&block
没有意义——yield
期望一个块,而&block
接受任何传入的块并将其转换为Proc,如果你正在使用yield,则这是完全不必要的。如果您要直接传递Proc而不是块,则甚至不需要&block
语法,因为没有块需要包装。 - Chuck