[問題] Ranges as Sequences 的一個小問題

看板Ruby作者 (GG)時間16年前 (2009/03/19 01:43), 編輯推噓1(1010)
留言11則, 2人參與, 最新討論串1/1
在 Programming Ruby 2nd (p.63) 看到一個範例 class VU include Comparable attr :volume def initialize(volume) # 0..9 @volume = volume end def inspect '#' * @volume end def <=>(other) self.volume <=> other.volume end def succ raise(IndexError, "Volume too big") if @volume >= 9 VU.new(@volume.succ) end end ~~~~~~~ medium_volume = VU.new(4)..VU.new(7) medium_volume.to_a → [####, #####, ######, #######] medium_volume.include?(VU.new(3)) → false 想請問其中 inspect 這個方法和 to_a 之間的關係 因為medium_volume並沒有使用inspect,來接收inspect產生的訊息 但使用 to_a 還是能夠印出 inspect 所定義的格式 看了上下文,沒有這段的解釋,所以想請教大家 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.29.185

03/19 12:13, , 1F
你在 irb 裡吧? irb 會用 inspect 來印出字串
03/19 12:13, 1F

03/19 12:14, , 2F
對了,給個小建議,先貼描述,程式碼放最後面比較容易看
03/19 12:14, 2F

03/19 23:34, , 3F
我在命令提示字元下切換路徑 以ruby file.rb 這樣執行
03/19 23:34, 3F

03/19 23:35, , 4F
沒有在irb裡面耶
03/19 23:35, 4F

03/20 13:01, , 5F
那怎麼會有 IO 呢?
03/20 13:01, 5F

03/22 20:14, , 6F
執行的結果 就直接秀在命令提示字元上
03/22 20:14, 6F

03/22 20:17, , 7F
喔喔 因為這段程式碼是直接COPY書上的 書上沒有加 "p"
03/22 20:17, 7F

03/22 20:17, , 8F
自己加了 才會顯示出結果
03/22 20:17, 8F

03/22 20:18, , 9F
是不是 跟這個有關係呢?
03/22 20:18, 9F

03/22 21:45, , 10F
p 就是 call inspect, puts 是 call to_s
03/22 21:45, 10F

03/23 11:31, , 11F
感謝版主解釋,又學到了一點
03/23 11:31, 11F
文章代碼(AID): #19mJArHz (Ruby)
文章代碼(AID): #19mJArHz (Ruby)