>

루비 (v2.5.0) ...

[1,2,3].map do |i|
  if i.eql?(3)
    a = 123
  end
  defined?(a)
end
=> ["local-variable", "local-variable", "local-variable"]

어떻게 a 를 설명해 줄 수 있습니까?   local-variable 가 될 수 있습니다  ( nil 와 동일) ) 세 번째 반복까지 설정되지 않은 경우 첫 번째 및 두 번째 반복에서

미리 감사합니다!

  • 답변 # 1

    A.Black의 책 인용에 답할 것이다 :Well Grounded Rubyist, 6 장, p. 158. (2014 년 2 판) :

    루비 파서가식별자,등호순서를 보면이 식과 같이

    a = 123

    로컬 변수 a 를위한 공간을 할당합니다. . 코드를 실행하지 않은 경우 변수의 생성 (값을 지정하는 것이 아니라 변수의 내부 생성)은 항상 이러한 종류의 표현식의 결과로 발생합니다.

  • 이전 c# - 메뉴의 옵션에 따라 다른 클래스를 인스턴스화
  • 다음 c# - DataContractSerializer를 사용하여 직렬화 해제 된 Jsonnet 오브젝트를 보내는 중 오류가 발생했습니다