搜尋

首頁  >  問答  >  主體

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

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

怪我咯怪我咯2760 天前716

全部回覆(2)我來回復

  • PHP中文网

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

    第一個問題:
    to_s 應該是廣泛存在的方法,to_str 應該是 String 或很少的類別才有的方法。 ruby 確實有許多方法, https://ruby-china.org/topics/25311 。

    第二個問題:
    inspect 傳回型別是 string,傳回利於閱讀的放映目前物件的字串。 nil.inpsect 回傳 "nil" 因为他就是返回 "nil",看 NilClass#inspect 文件就知道了。

    回覆
    0
  • 怪我咯

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

    這裡需要指出一個問題,那就是Ruby中的nil跟其他语言中的null是不一样的,nil是一個對象(不是一個類,他是NilClass這個類的一個對象),Ruby中用這個對象來代表沒有任何東西,但它本身是一個對象。

    回覆
    0
  • 取消回覆