HI,以下是小弟的尝试:
p=lambda {|x| x*x} q=p.dup puts q==p #out false puts p.object_id puts q.object_id
为什么是false呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
버전 문제.
이 책은 꽤 오래된 책이어야 하며, 사용 중인 Ruby 버전은 2.0 이전입니다. Ruby 2.0부터 Proc#==의 동작이 변경되었습니다:
Ruby
Ruby 2.0부터 Two procs are == only when they are the same object.는 두 프로세스가 동일한 객체인 경우에만 ==을 반환합니다. true
Two procs are == only when they are the same object.
==
true
Ruby의 공식 문서를 보면 람다는 실제로 Proc입니다. Proc은 자체 == 메서드를 오버로드하지 않지만 BasicObject의 == 메서드를 호출합니다
동일성 — 객체 수준에서 ==는 obj와 other가 동일한 객체인 경우에만 true를 반환합니다(객체 수준에서 객체를 비교하는 방법은 동일한 객체인지 확인하는 것입니다). 일반적으로 이 메서드는 클래스별 의미를 제공하기 위해 하위 클래스에서 재정의됩니다.
프로세스
Proc의 기본 클래스를 보면 Object에서 상속받고 Object가 BasicObject에서 상속되는 것을 볼 수 있습니다
버전 문제.
이 책은 꽤 오래된 책이어야 하며, 사용 중인
Ruby
버전은 2.0 이전입니다. Ruby 2.0부터 Proc#==의 동작이 변경되었습니다:Ruby 2.0부터
참고:Two procs are == only when they are the same object.
는 두 프로세스가 동일한 객체인 경우에만==
을 반환합니다.true
Ruby의 공식 문서를 보면 람다는 실제로 Proc입니다.
Proc은 자체 == 메서드를 오버로드하지 않지만 BasicObject의 == 메서드를 호출합니다
프로세스
Proc의 기본 클래스를 보면 Object에서 상속받고 Object가 BasicObject에서 상속되는 것을 볼 수 있습니다