【问题标题】:Not able to get required output using yield [closed]无法使用产量获得所需的输出[关闭]
【发布时间】:2015-04-06 21:33:43
【问题描述】:

我想使用ablock 打印值 5,如下所示。我尝试使用ablock {|x, y| puts "answer:#{x+2*y}"}。但它不会在 irb 中显示任何内容。

def ablock
  i = 1
  j = 2
  yield(i, j)
  i = 3
  j = 4
end

【问题讨论】:

  • 看起来不错。它应该打印answer:5
  • 也适合我

标签: ruby yield


【解决方案1】:

应该可以正常使用

2.1.1 :001 > def ablock
2.1.1 :002?>     i = 1
2.1.1 :003?>     j = 2
2.1.1 :004?>     yield(i, j)
2.1.1 :005?>     i = 3
2.1.1 :006?>     j = 4
2.1.1 :007?>   end
 => :ablock 
2.1.1 :008 > ablock {|x, y| puts "answer:#{x+2*y}"}
answer:5
 => 4 
2.1.1 :009 > 

【讨论】:

  • 是的......它工作正常......看起来当我将方法粘贴到 irb 时没有创建 ablock 函数......我再次尝试并且它工作......
猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2015-05-16
  • 2017-07-04
  • 2021-10-04
  • 1970-01-01
相关资源
最近更新 更多