5
가능한 중복 :
Why is `a = a` `nil` in Ruby?왜 X = X X가 정의되지 않은 경우에도 오류를 발생시키지 않습니다
난 그냥있어이 문제에 대한 이유가 확실 해요 그것이 무엇인지 궁금하다.
y = x # NameError: undefined local variable or method 'x'
x = x # => nil
가능한 중복 :
Why is `a = a` `nil` in Ruby?왜 X = X X가 정의되지 않은 경우에도 오류를 발생시키지 않습니다
난 그냥있어이 문제에 대한 이유가 확실 해요 그것이 무엇인지 궁금하다.
y = x # NameError: undefined local variable or method 'x'
x = x # => nil
이것은 Ruby에서 변수가 초기화되는 방식으로 인해 발생합니다. 이는이 언어에서만 고유합니다. 기본적으로 루비는 값을 할당받을 수 있다면 변수를 초기화 (생성)합니다. 이 예제를 고려하십시오
if false
x = "hello"
end
x
확실히 여기 "hello"
문자열을 할당되지 않습니다. 그러나 정적 프로그램 분석 에서처럼 여전히 nil
으로 초기화되며 할당 될 수 있습니다.
귀하의 예와 비슷합니다. x
에 지정 했으므로 nil
으로 초기화되고 문이 실행됩니다. 따라서 실행 중에 x
은 실제로 nil
입니다.
참조 : http://stackoverflow.com/questions/8908050/why-is-a-a-nil-in-ruby –
중복에 대해 죄송합니다. 찾지 못했습니다. – mechanicalfish