p
和puts
是ruby
中特別常用的方法,很多童鞋可能認為它們是差不多的,使用的時候也不加注意,但是仔細考究起來,它們是有明顯差別的。
先舉乙個例子:
class foo
def
inspect
"foo from inspect"
end
def to_s
"foo from to_s"
endend
foo
=foo.new
p foo
puts foo
p"p: <#
>"
puts"puts: <#
>"
這段**的輸出是:
相當於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
方法。再舉乙個例子:
小結:
比較專案
puts
p 換行符
末尾新增換行符
末尾不加換行符
末尾新增換行符
非字串物件的輸出
呼叫該物件的
to_s
方法呼叫該物件的
to_s
方法通過
inspect
方法將物件轉換成字串
學習筆記1 Ruby模組 module
我們使用模組的的主要目的是用來組織 模組化 有點類似命名空間,但卻有很大的不同 一 建立和使用模組 用module關鍵字來定義模組 module沒有例項,我們使用時把module混合到類中來使用,我們也可以這麼理解,把module裡的內容拷貝乙份放到類裡,成為類的一部分 我們可以把模組放到乙個單獨的...
補充 redis的ruby安裝
如果使用yum install安裝ruby會預設安裝1.8版本的。而1.8不滿足redis的3.0集群環境,所以需要安裝更高版本的ruby。這種方式安裝和解除安裝都非常麻煩 2.通過rvm管理安裝 第一步 安裝curl 1 yum install curl第二步 安裝rvm gpg keyserve...
Ruby 與ruby的初次接觸(1)
一 ruby的使用 1 ruby安裝 以下主要針對是windows的 主要是在官網上找到 在安裝的時候務必注意 勾選 add ruby executables to your path 不然你只能自己手動加路徑了 二 第乙個ruby的 很尷尬的是我的ruby最終還是在mac上安裝了,windows用...