国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Ruby中的p和puts的使用區(qū)別淺析

2019-10-26 19:25:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

p 和 puts 是 Ruby 中特別常用的方法,很多童鞋可能認(rèn)為它們是差不多的,使用的時(shí)候也不加注意,但是仔細(xì)考究起來(lái),它們是有明顯差別的。

先舉一個(gè)例子
代碼如下:
class Foo
    def inspect
      "foo from inspect"
    end

    def to_s
      "foo from to_s"
    end
  end

  foo = Foo.new
  p foo
  puts foo
  p "p: <#{foo}>"
  puts "p: <#{foo}>"

這段代碼的輸出是
代碼如下:
foo from inspect
foo from to_s
p: <foo from to_s>
puts: <foo from to_s>

p obj 相當(dāng)于 puts obj.inspect,而 puts obj 相當(dāng)于 puts obj.to_s, 使用的方便是明顯區(qū)別的,p 是使用 obj 的 inspect 方法,而 puts 是 to_s 方法。

為什么會(huì)這樣呢?這個(gè)我想可以從 to_s 和 inspect 的區(qū)別說(shuō)起,to_s 是對(duì)象的字符串表示, 是 puts 和雙引號(hào)字符使用的方法。inspect 是對(duì)象狀態(tài)的表示,通用用于 debug 中。 Object 中的定義了 to_s 和 inspect 方法,默認(rèn)都是返回對(duì)象的類(lèi)名和地址。

所以p 和 puts主要是用途的不同,p 是作為 debug 輸出,而 puts 作為對(duì)象的字符串表示輸出。

另外值得一提的是,在 irb console 中,命令行中表達(dá)式求值,使用的是 p 對(duì)象的 inspect 方法。另外,通常 debug 輸出命令,也是使用對(duì)象的 inspect 方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 白河县| 塔城市| 赤壁市| 寻甸| 曲靖市| 青冈县| 阿尔山市| 香港 | 濮阳市| 阜平县| 沭阳县| 吐鲁番市| 册亨县| 云浮市| 翁牛特旗| 醴陵市| 富顺县| 讷河市| 抚顺市| 利川市| 房山区| 安义县| 昌乐县| 东港市| 荥经县| 富裕县| 泉州市| 南开区| 霍州市| 济源市| 聂拉木县| 晋州市| 五原县| 伊金霍洛旗| 连平县| 若尔盖县| 东乡县| 西乡县| 浏阳市| 贵德县| 丽水市|