代码工作正常。但除此之外,还有一个错误。为什么以及如何修复?
def make_casserole
puts "Preheat oven to 375 degrees"
ingredients = yield
puts "Place #{ingredients} in dish"
puts "Bake for 20 minutes"
end
make_casserole do
"noodles, celery, and tuna"
end
make_casserole do
"rice, broccoli, and chicken"
end
make_casserole
blocc.rb:31:in `make_casserole': no block given (yield) (LocalJumpError)from blocc.rb:45:in `<main>'
必须将行ingredients = yield
更改为ingredients = yield if block_given?
。这是因为您在不传递块的情况下调用该方法。如果no block given
。