看板 Ruby 關於我們 聯絡資訊
在 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
godfat:你在 irb 裡吧? irb 會用 inspect 來印出字串 03/19 12:13
godfat:對了,給個小建議,先貼描述,程式碼放最後面比較容易看 03/19 12:14
GoOdGaMe:我在命令提示字元下切換路徑 以ruby file.rb 這樣執行 03/19 23:34
GoOdGaMe:沒有在irb裡面耶 03/19 23:35
godfat:那怎麼會有 IO 呢? 03/20 13:01
GoOdGaMe:執行的結果 就直接秀在命令提示字元上 03/22 20:14
GoOdGaMe:喔喔 因為這段程式碼是直接COPY書上的 書上沒有加 "p" 03/22 20:17
GoOdGaMe:自己加了 才會顯示出結果 03/22 20:17
GoOdGaMe:是不是 跟這個有關係呢? 03/22 20:18
godfat:p 就是 call inspect, puts 是 call to_s 03/22 21:45
GoOdGaMe:感謝版主解釋,又學到了一點 03/23 11:31