24

我什么时候知道什么时候声明一个变量,而不是在 Ruby 中?

我想知道为什么第一个代码需要输入才能声明为字符串并在块之外,而第二个块不需要。

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 中从未声明任何变量。相反,规则是变量在使用之前必须出现在赋值中。

查看第一个示例中的前两行:

input = ''
while input != 'bye'

条件使用while变量input。因此,分配是必要的。在第二个例子中:

while true
  input = gets.chomp
  puts input 

同样,在调用中使用该变量input之前对其进行分配。puts在这两个例子中,世界都很好。

于 2013-04-26T23:58:06.480 回答