麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

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

2020-10-29 19:42:05
字體:
供稿:網(wǎng)友

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成年人免费高清视频 | 亚洲精品v天堂中文字幕 | 久久久涩 | 男女亲热网站 | 亚洲欧洲日产v特级毛片 | 伊人午夜视频 | 黄色电影免费网址 | 国产一级毛片高清 | 第四色成人网 | av色先锋 | 国产一级二级毛片 | 国产一区日韩一区 | 国产免费一区二区三区最新不卡 | 精品1 | 亚洲aⅴ在线观看 | 特一级黄色毛片 | 禁漫天堂久久久久久久久久 | 国产黄色网页 | 钻石午夜影院 | 亚洲国产高清自拍 | 欧美一级做一级爱a做片性 久久久资源网 | 4p一女两男做爰在线观看 | 羞羞的视频在线 | 毛片在线免费视频 | 欧美成人一级片 | 国产精品成人久久久久a级 av电影在线免费 | 精品国产一区二区亚洲人成毛片 | 免费黄色小网站 | 午夜视频在线观看免费视频 | 亚洲欧美一区二区三区在线观看 | 香蕉视频网站在线观看 | 国产美女视频黄a视频免费 日韩黄色在线播放 | 国产福利视频在线观看 | 精品国产一区二区三区久久久狼牙 | 97中文字幕在线观看 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 免费人成年短视频在线观看网站 | 久久久久久久久久久一区 | 欧美日韩亚洲精品一区二区三区 | 欧美一级黄色录像片 | 欧美日本另类 |