开始吧。 。 。 结束而表示’阻止’?

temp = 98.3 begin print "Your temperature is " + temp.to_s + " Fahrenheit. " puts "I think you're okay." temp += 0.1 end while temp < 98.6 

在上面的例子中,开始和结束之间的所有内容是一个块吗?

我仍然困惑什么是块。

如果你不能把它称为块,你会在开始和结束之间将那段代码称为什么? 把它称为块是否可以?

Block在Ruby中具有特殊含义。 根据 Ruby的创建者Matz的说法 ,你可以将一个块看作一个无名的函数 – 通常是可以yield东西,也可以是参数。

在描述Ruby语法时,您可能会看到以下类型的disamiguation:

  • beginend (在其他语言中称为块)有时可以简单地称为它是什么,即表达式 (可能反过来包含其他表达式 – 表达式只是具有返回值的东西)在Ruby中。 一些引用仍将其称为begin/end blockcode block ,这在某种程度上增加了混淆
  • doend{...}将永远称为Ruby中的

例如,仔细阅读Ruby语法手册页 ,例如

begin expression end
expression while expression
loop block

如需进一步阅读,请参阅:

  • 编程Ruby
  • Ruby(来自其他语言)
  • 更多,更多的文档

begin/end是严格控制流程,而不是块。

 begin puts "hi" end # => "hi" 

代码立即运行。 如果它是一个块,则必须以某种方式调用它以使其中的代码运行,如下例所示:

 def a_method; end a_method { puts "hi" } # nothing.. def a_method yield end a_method { puts "Hi!" } # => "Hi!"