我正在處理一個數組,我們將其稱爲books
,其中的複雜對象稱爲Book
。問題是當我打電話給puts "#{books.inspect}"
時,ruby輸出一串二進制(不可讀的utf8字符)。但是,當我撥打puts #{books[0].to_str}"
時,我得到一個簡短而漂亮的輸出,描述了book
。不知道是否是相關的,但Book
是一個子類(我們可以調用它的父類Item
)和books.length=1
ruby Array.inspect與Array [元素] .to_s
Ruby意味着.to_s
和.inspect
是同義的,但他們顯然在實踐中提供了不同的結果。有誰知道爲什麼會發生這種情況,你能否提供一個關於如何從整個書籍集合中獲得我想要的好輸出的建議?
其它信息:
[chk ~ ]$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
無論代碼返回結果如何,'#{code}'自動調用'to_s'。 '#{books [0] .to_s}'=='#{books [0]}''。 'puts'做同樣的事情。所以,'放書[0]'=='放置「#{books [0] .to_s}」' – 2012-07-19 19:21:11