Ruby 何时计算块?

Ruby 何时计算块?,ruby,Ruby,我试图理解以下示例中xml.send方法调用的语法: builder = Nokogiri::XML::Builder.new(opt) do |xml| xml.send(rootTag) { data.each { |e| generate_xml(e, xml) } } end xml.send方法调用后面似乎有一个块。该块是否作为参数传递给该方法?是否计算块并将结果传递给方法?它只是按照方法运行吗 注意,我问这个问题是一个一般的Ruby语法问题,而不

我试图理解以下示例中xml.send方法调用的语法:

  builder = Nokogiri::XML::Builder.new(opt) do |xml|
    xml.send(rootTag) {
      data.each { |e| generate_xml(e, xml) }
    }
  end
xml.send方法调用后面似乎有一个块。该块是否作为参数传递给该方法?是否计算块并将结果传递给方法?它只是按照方法运行吗


注意,我问这个问题是一个一般的Ruby语法问题,而不是一个Nokigiri特定的问题,这只是一个示例。

下面的代码块作为rootTag中包含的方法的参数传递给send


将块传递给方法时,该方法控制是否/何时使用屈服来评估块

您是否在问为什么块没有参数?比如5.5次{打招呼}?你的问题不清楚。一方面,你似乎想知道block的语法。但另一方面,您似乎理解这一点,并询问何时计算块。如果您想问一个一般的Ruby问题,您不应该使用这样的特定示例,也不应该用nokogiri标记它。请编辑问题。不仅是@sawa说了什么,而且没有指定哪个块寻址的方法。一个比提出可能被问的问题更复杂的例子。它不清楚。这与代码有什么关系:C++的块IDE?代码中有两个块。你具体说的是哪一个?此外,在上一段中,您询问了语法,但在上一段中,您询问了语义。是哪一个?
{
  data.each { |e| generate_xml(e, xml) }
}