Ruby中为何要同时有to_s,to_str,inspect这三个函数?nil.inspect为何是“nil”
怪我咯
怪我咯 2017-04-24 09:09:51
0
2
750

ruby新手,求大侠指点一二。

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(2)
Ty80

첫 번째 질문:
to_s는 널리 존재하는 메소드여야 하며, to_str은 String이거나 소수의 클래스에만 있는 메소드여야 합니다. Ruby에는 https://ruby-china.org/topics/25311과 같이 다양한 방법이 있습니다.

두 번째 질문:
검사의 반환 유형은 문자열이며, 현재 개체를 읽을 수 있는 방식으로 표시하는 문자열을 반환합니다. nil.inpsect는 "nil"을 반환하기 때문에 "nil"을 반환합니다. NilClass#inspect 문서를 보면 알 수 있습니다.

刘奇

여기서 한 가지 문제를 지적해야 합니다. 즉, Ruby의 nil은 다른 언어의 null과 다릅니다. nil은 객체입니다(클래스가 아니라 NilClass 클래스의 객체입니다). , 이 개체는 Ruby에서 그 자체가 개체일 뿐인 을 나타내는 데 사용됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿