ホームページ  >  に質問  >  本文

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

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

怪我咯怪我咯2759日前710

全員に返信(2)返信します

  • PHP中文网

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

    最初の質問:
    to_s は広く存在するメソッドである必要があり、to_str は String または少数のクラスのみが持つメソッドである必要があります。 Ruby には多くのメソッドがあります (https://ruby-china.org/topics/25311)。

    2番目の質問:
    Inspect の戻り値の型は string で、現在のオブジェクトを読みやすい方法で表示する文字列を返します。 nil.inpsect は "nil" 因为他就是返回 "nil" を返します。NilClass#inspect のドキュメントを参照してください。

    返事
    0
  • 怪我咯

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

    ここで問題を指摘する必要があります。つまり、Ruby の nil跟其他语言中的null是不一样的,nil はオブジェクトです (クラスではなく、NilClass クラスのオブジェクトです)。このオブジェクトは Ruby では何もせずに を表すために使用されますが、実際には です。それ自体がオブジェクトです。

    返事
    0
  • キャンセル返事