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

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

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

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

先舉一個(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ū)別說起,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 方法。

相關(guān)文章

最新評(píng)論

雅安市| 海丰县| 美姑县| 阳泉市| 龙岩市| 和田县| 垣曲县| 开鲁县| 拜城县| 松桃| 策勒县| 温泉县| 镇雄县| 永兴县| 博白县| 南陵县| 舒兰市| 门源| 静海县| 潢川县| 额尔古纳市| 曲靖市| 浏阳市| 三河市| 五大连池市| 九江县| 正镶白旗| 吉木萨尔县| 黔西| 建瓯市| 宣恩县| 奉化市| 外汇| 邵武市| 荣昌县| 清涧县| 东海县| 阳春市| 宝鸡市| 宣武区| 银川市|