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

首頁 > 編程 > Ruby > 正文

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

2020-02-24 15:38:22
字體:
供稿:網(wǎng)友

p和puts是Ruby中最常用的方法。許多同學(xué)可能會認(rèn)為它們是相同的,而且它們不會被注意使用,但是仔細(xì)研究后,它們會明顯不同,武林技術(shù)頻道小編和大家分享淺析Ruby中的p和puts的使用區(qū)別。

先舉一個例子

復(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 方法。

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

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

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

以上就是關(guān)于淺析Ruby中的p和puts的使用區(qū)別,如果你還想了解更多技術(shù)頻道的信息,你可以來關(guān)注武林技術(shù)頻道網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 苗栗县| 牙克石市| 拉萨市| 芷江| 紫阳县| 韶关市| 苍南县| 金塔县| 南京市| 郑州市| 郯城县| 建阳市| 崇义县| 诸城市| 靖江市| 武清区| 安龙县| 桃源县| 犍为县| 潼关县| 镇沅| 射阳县| 枞阳县| 开江县| 高阳县| 伊川县| 凯里市| 浠水县| 西畴县| 鄂州市| 海南省| 保定市| 黔东| 南康市| 东丰县| 兰州市| 浮山县| 滨海县| 沙河市| 石景山区| 涪陵区|