【发布时间】:2017-10-26 17:28:00
【问题描述】:
我使用和工作于 Java 和 C#。
我被要求在以下 Ruby 代码中解释 Yield。
代码:
mine=15
puts "Mine = 15"
def call_block
yield
yield
puts 'Now for some magic!'
end
call_block {mine}
print "Mine now is "
puts mine
输出:
mine = 15
now for some Magic!
mine now is 25
问题是如何使用上述代码获得此输出。
我对产量了解不多,这就是为什么没有正确编写代码的原因。
我认为必须在某处添加 10 个,但在哪里?
任何帮助将不胜感激。
【问题讨论】:
-
您是否阅读过任何在线教程,或搜索过“ruby yield”?你发现了什么?他们为什么不帮忙?
-
我对产量进行了快速搜索,我了解到这只是一个假想的调用,无论出于何种原因,以后都会更改。我想我看到的例子是他们调用了 yield 并传递了一个变量并说它是一个占位符供以后使用?
-
你运行代码了吗?它产生什么?您如何更改
call_block的输出以实现目标? -
将
z = yield(x,y)视为z = execute_block(x,y),其中x和y是要分配给块的两个块变量的值,z是块计算并返回的值. -
yield在英语中(在某种意义上)用作动词,表示让路或移交。在 Ruby 代码中,我们的意思是让步给块。