我开始学习 Ruby on Rails,发现自己对语法感到困惑,所以我不得不阅读一些 Ruby 语法。我从 http://www.cs.auckland.ac.nz/references/ruby/doc_bundle/Manual/man-1.4/syntax.html 学到了语法:
method_call do [`|' expr...`|'] expr...end
他们称之为迭代器。我知道一个迭代器通过一个循环运行,但我不明白我应该如何准确地阅读这个或者这个语法中发生了什么。我一直在 RoR 截屏视频中看到它,这些话很有道理,但实际上我不知道发生了什么。谁能给我解释一下?
编辑:示例
respond_to do |format|
format.json
format.xml { render :xml => @posts }
end
最佳答案
方法可以采用称为“ block ”的结构。这些是传递给方法的匿名方法。
另一种语法是:
method_call { |var| do_something(var) }
基本上,您是说对于迭代中的每个项目,将其命名为“var”并对该项目执行某些操作。该方法只是调用您传入的 block ,因为它向它“产生”项目。
这有帮助吗?
编辑:在您的示例中,您正在以一种有趣的方式使用迭代器模式...可能只将一个 format
对象传递到您的 block 中,因此您可以然后告诉它要处理哪些格式,以及当你看到它时该怎么做。
换句话说,他们正在使用该模式来创建某种 DSL,让您可以配置您要响应的内容。
关于ruby-on-rails - 解释 Ruby on Rails 中的迭代器语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293120/