最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年03月24日 08:49:46   投稿:junjie  
這篇文章主要介紹了Ruby中的p和puts的使用區(qū)別淺析,本文用一個實例講解了它們之間的區(qū)別,并總結(jié)出結(jié)論,需要的朋友可以參考下

p 和 puts 是 Ruby 中特別常用的方法,很多童鞋可能認為它們是差不多的,使用的時候也不加注意,但是仔細考究起來,它們是有明顯差別的。

先舉一個例子

復制代碼 代碼如下:

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 相當于 puts obj.inspect,而 puts obj 相當于 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 方法,默認都是返回對象的類名和地址。

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

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

相關文章

最新評論

临夏县| 天柱县| 永州市| 平远县| 阿鲁科尔沁旗| 铁岭市| 建湖县| 大安市| 彰武县| 东丰县| 大化| 宜宾县| 宁国市| 杨浦区| 改则县| 左贡县| 吉水县| 大城县| 扶绥县| 遂平县| 饶阳县| 井冈山市| 苏尼特左旗| 杭锦旗| 阳山县| 石泉县| 苏州市| 北流市| 巫山县| 团风县| 花垣县| 汶川县| 本溪| 龙泉市| 江安县| 玉屏| 吉水县| 遂川县| 依兰县| 大埔区| 靖边县|