【问题标题】:how does iteration work in ruby迭代如何在 ruby​​ 中工作
【发布时间】:2014-02-26 14:50:56
【问题描述】:

我试图了解这个迭代器是如何工作的:

def two_times          
    yield
    yield
end

two_times {puts "Hello"}

第二部分是否调用方法,然后yield调用{puts "Hello"}

【问题讨论】:

  • 我想知道是否删除了块代码 {puts "Hello"}。还能用吗。我只是尝试了一下,但我得到了一个错误——>没有给出块(yield)。所以,如果使用 yield 它需要那个块代码。
  • 试试这个:yield unless block_given?。如果没有给出块,它不会yield 阻止。
  • 我确实尝试过,但将其更改为 'yield if block_given?','unless' 仍然有错误
  • 我的错。正如你所说,它应该是ifyield if block_given?)。除非 = 如果不是。

标签: ruby methods iterator yield


【解决方案1】:

基本上,是的。最后一行调用方法two_times 并传入一个代码块,其代码打印出Hello。每次方法执行yield,都会执行块。

【讨论】:

  • 在代码中,是否也可以使用do和end,除了{}优先级更高。
  • @user3155181 你试过了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多