Когда foo
является неопределенной переменной, попытка доступа к ней вызывает NameError
:
foo
#=> NameError: undefined local variable or method `foo'
a = foo
#=> NameError: undefined local variable or method `foo'
Почему foo = foo
не поднимает NameError
?
foo = foo
#=> nil
Вчера мне потребовались часы, чтобы отследить эту строку как ошибку в программе ...
capture = capture.to_i
То, что я намеревался сделать, это преобразовать capture_str
в Integer
. Вместо этого я ввел nil
, сказав capture = capture
, а затем превратив этот ноль в 0
. Итак, я делал это ...
capture = capture.to_i
#=> 0
Но я ошибочно полагал, что переменная NameError
была бы выброшена, как это ...
capture = capture_str.to_i
#=> NameError: undefined local variable or method `capture_str'