9

としてエラーが発生しました。ブール値として使用された場合に評価されることがundefined variableわかっています。nilfalse

if y
  puts "Something"
end
4

3 に答える 3

19

未定義の変数は nil と等しくありません。

未定義のインスタンス変数は nil を返します (これも未定義の場合)。

y例外を発生させます

@yゼロを返します

于 2012-08-07T09:30:15.860 に答える
11

いいえ、エラーが発生しますundefined local variable or method。しかし、何かが定義されているかどうかを確認したい場合は、defined?このようなメソッドを使用できます

if defined?(my_var)
  print 'defined'
else
  print 'not defined'
end
于 2012-08-07T09:30:03.930 に答える
6

こちらは少しシワがあります。これを試して:

if 5 == 0
   y = 'hi'
end

puts "hello" if y

yブロックで「定義」されていifます。そのブロックを削除すると、エラーが発生します。

于 2014-07-12T15:58:12.893 に答える