문제

이것은 꽤 오랫동안 나를 괴롭 히고 있습니다.

>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4

NIL.ID가 4 인 이유는 무엇입니까? (또는 감가 상각에 대해 까다 롭고 싶다면 nil.object_id)

도움이 되었습니까?

해결책

NIL은 언어가 초기화 될 때 생성 된 객체이며 해당 객체의 ID는 항상 4입니다.

신분증이 4 인 이유에 대한 자세한 내용은 이것 블로그 게시물.

다른 팁

나는 항상 그것이 시원한 부활절 달걀이라고 생각했다. 일본에서 4 명은 죽음의 수이다.

모든 객체의 ID가 어떻게 든 C Ruby 통역사에 표시되어야했기 때문에 발생합니다. 숫자는 (숫자*2) +1에 매핑되었고, 진실성은 0, 거짓은 2를 얻었고 Nil은 4 왼쪽을 가졌습니다. 그것은 단지 이상한 구현 문제 또는 유출 된 추상화 일뿐입니다. 루비 통역사를 쓰고 싶지 않으면 걱정하지 않아야합니다.

IRB에서 이것을 시도하고 있다면 4

irb
>> NIL.id
(irb):7: warning: Object#id will be deprecated; use Object#object_id
=> 4

루비 일본인에서 NIL 방법을 설정하는 일본인은 4를 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top