찾다

 >  Q&A  >  본문

Ruby中为何要同时有to_s,to_str,inspect这三个函数?nil.inspect为何是“nil”

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

怪我咯怪我咯2780일 전729

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-24 09:11:51

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

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

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-24 09:11:51

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

    회신하다
    0
  • 취소회신하다