24

Ruby ではいつ変数を宣言すべきか、いつ宣言すべきでないかを知るのはいつですか?

最初のコードでは入力を文字列としてブロックの外で宣言する必要があるのに、2 番目のブロックでは宣言しない理由を知りたいです。

input = ''
while input != 'bye'
  puts input
  input = gets.chomp
end
puts 'Come again soon!'

対:

while true
  input = gets.chomp
  puts input 
  if input == 'bye'
    break 
  end
end
puts 'Come again soon!'
4

1 に答える 1

35

Ruby では変数が宣言されることはありません。むしろ、ルールは、変数が使用される前に代入に現れなければならないということです。

最初の例の最初の 2 行を見てください。

input = ''
while input != 'bye'

while条件は変数を使用しますinput。したがって、その前に代入が必要です。2 番目の例では:

while true
  input = gets.chomp
  puts input 

繰り返しますが、変数inputputs呼び出しで使用される前に割り当てられます。どちらの例でも、世界はすべて正しいです。

于 2013-04-26T23:58:06.480 に答える