a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Ruby > 正文

Ruby中的p和puts的使用區別淺析

2020-10-29 19:42:05
字體:
來源:轉載
供稿:網友

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, 使用的方便是明顯區別的,p 是使用 obj 的 inspect 方法,而 puts 是 to_s 方法。

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区免费视频 | 亚洲人成人一区二区在线观看 | 久久天堂| 成人区精品一区二区婷婷 | 超黄视频在线观看 | 精品在线不卡 | 日韩一区二区三区在线观看 | 国外爱爱视频 | 毛片网在线观看 | 婷婷色婷婷 | 国产高清久久久 | 青青久视频 | 欧美国产一区二区 | 午夜视频在线观看网站 | 国产综合精品 | 中文字幕视频在线观看 | 99精品国产高清在线观看 | 国产精品99精品久久免费 | 婷婷精品 | h片在线免费观看 | 国产在线精品一区二区 | 国产精品久久 | 日韩综合一区 | 黄色影视 | 黄色小电影网址 | 成人黄色一级网站 | 国产在线专区 | 99福利视频 | 国产成人涩涩涩视频在线观看 | 国产精品久久av | 一级女性全黄久久生活片免费 | 精品国产乱码一区二区三区a | 国产精品久久久久久久久久久久久久久久久 | 日本一区二区三区四区不卡视频 | 日日爱夜夜爱 | 国产精品一区二区三区在线看 | 天天干欧美 | 在线播放精品 | 欧美精品综合 | jjzz18国产| 岛国视频在线 |