Подтвердить что ты не робот

Начинается., конец, обозначая "блок"?

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

В приведенном выше примере все между началом и концом блока?

Я все еще запутался, что такое блок.

Если вы не можете назвать это блоком, как бы вы назвали этот фрагмент кода между началом и концом? Можно ли назвать это куском?

4b9b3361

Ответ 1

Блок имеет особое значение в Ruby. По словам Маца, создателя Ruby, вы можете смотреть на блок как на безымянную функцию - обычно это может быть yield ed, и которые также могут принимать параметры.

При описании синтаксиса Ruby вы можете увидеть следующий тип диссонанса:

  • begin... end (то, что называется блоком на других языках) иногда может упоминаться просто как то, что он есть, т.е. expression (который, в свою очередь, может содержать другие выражения - выражение - это просто что-то, что имеет возвращаемое значение) в Ruby. Некоторые ссылки по-прежнему будут называть его begin/end block или code block, добавляя несколько к путанице
  • do... end или {...} всегда будет упоминаться как block в Ruby

В примерах рассмотрим страницу man синтаксиса Ruby, например

begin expression end
expression while expression
loop block

Для дальнейшего чтения см.

Ответ 2

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!"