다른 유형의 변수의 경우 ||=
을 사용하지만 부울에는 사용할 수 없습니다 (x ||= true
은 이전에 x가 false로 할당 된 경우에도 x를 true로 지정합니다).Ruby에서 어떻게 부울 기본값을 설정합니까?
나는이 일 것이라고 생각 것 :
x = true unless defined?(x)
을하지만 그렇지 않습니다 : 어떤 이유로 X에 nil을 할당합니다.
I 작동 하나의 방법 알고있다. (여기에 대한 설명은 감사하겠습니다) :
unless defined?(x)
x = true
end
을하지만 오히려 자세한입니다. Ruby에서 부울 변수에 기본값을 할당하는 좀 더 간결한 방법이 있습니까?
당신은 X는 (모든 의도와 목적을 위해 거짓에 해당) 무기 호에 할당하고 싶지 않은 이유가 ? –
@ sylvain.joyeux 그가 '거짓'이 아니라 '사실'이되기를 원하기 때문입니다. –
@ sylvain.joyeux 거짓 대신에 nil을 사용하는 것은 괜찮지 만,'|| = '의 문제는 해결하지 못합니다. '|| ='를 사용하여 x에 디폴트 값을 할당하려 할 때, x가 이전에 nil에 할당 되었다면, nil 값을 유지하기보다는 오버라이드됩니다 (nil은 false이므로). – evanrmurphy