【发布时间】:2014-03-07 06:49:16
【问题描述】:
所以,我没有看到我在搜索中寻找的确切内容。 这是我的问题。我现在正在学习 Ruby 和 RoR - 我有一个问题我似乎找不到答案。 所以,这是我的播放代码:
class BlocksAndIterators
def yield_madness(a, b)
my_funky_pi = ((a*b) - (b+a)) / 3.14
my_yield = yield(my_funky_pi, a)
"my_funky_pi: #{my_funky_pi}\nmy_yield: #{my_yield}"
end
end
bi = BlocksAndIterators.new
puts bi.yield_madness(12, 24){|x, y| puts "x: #{x} and y: #{y}"}
现在,我得到的输出如下:
dkm@dkm-MasterControl:~/Projects/ruby_playground$ ruby blocks_iterators.rb
x: 80.2547770700637 and y: 12
my funky pi: 80.2547770700637
my yield:
所以我的问题是 - yield 实际上不会返回传统意义上的任何东西吗?我在这里没有收到任何错误,所以我认为我没有做任何语法不正确的事情 - 但 my_yield 似乎并没有返回它应该返回的内容。 有没有办法将产量的输出捕获到变量? 这只是你永远不会做的事情吗?我只是在这里玩代码,但我认为这应该是可行的耸耸肩 无论如何-感谢任何回答的人:)
【问题讨论】: