濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Ruby中的p和puts的使用區(qū)別淺析

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

熱門(mén)標(biāo)簽:柯城手機(jī)地圖如何做地圖標(biāo)注 外呼線路從哪里出來(lái)的 天津外呼系統(tǒng)怎么收費(fèi) 巫師3地圖標(biāo)注魔力之所 征服者企業(yè)地圖標(biāo)注 淮安自動(dòng)外呼系統(tǒng)供應(yīng)商 中牟外呼系統(tǒng)違法嗎 AI電銷機(jī)器人 線路 漯河電銷

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

先舉一個(gè)例子

復(fù)制代碼 代碼如下:

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}>"

這段代碼的輸出是

復(fù)制代碼 代碼如下:

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ì)象的類名和地址。

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

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

標(biāo)簽:河池 西雙版納 南昌 大慶 內(nèi)江 甘孜 克拉瑪依 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby中的p和puts的使用區(qū)別淺析》,本文關(guān)鍵詞  Ruby,中的,和,puts,的,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby中的p和puts的使用區(qū)別淺析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Ruby中的p和puts的使用區(qū)別淺析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    伽师县| 扬中市| 酒泉市| 尼玛县| 新竹县| 耒阳市| 丽江市| 石柱| 镇巴县| 岑巩县| 宜君县| 道孚县| 金寨县| 临安市| 桃园县| 吐鲁番市| 洞口县| 西和县| 五河县| 南康市| 扶余县| 茶陵县| 烟台市| 大荔县| 新野县| 钟山县| 高清| 中牟县| 建德市| 南投市| 新邵县| 民勤县| 河北省| 金山区| 罗山县| 乐清市| 廊坊市| 威海市| 曲麻莱县| 房产| 伊金霍洛旗|