作者GoOdGaMe (GG)
看板Ruby
标题[问题] Ranges as Sequences 的一个小问题
时间Thu Mar 19 01:43:16 2009
在 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
1F:→ godfat:你在 irb 里吧? irb 会用 inspect 来印出字串 03/19 12:13
2F:推 godfat:对了,给个小建议,先贴描述,程式码放最後面比较容易看 03/19 12:14
3F:→ GoOdGaMe:我在命令提示字元下切换路径 以ruby file.rb 这样执行 03/19 23:34
4F:→ GoOdGaMe:没有在irb里面耶 03/19 23:35
5F:→ godfat:那怎麽会有 IO 呢? 03/20 13:01
6F:→ GoOdGaMe:执行的结果 就直接秀在命令提示字元上 03/22 20:14
7F:→ GoOdGaMe:喔喔 因为这段程式码是直接COPY书上的 书上没有加 "p" 03/22 20:17
8F:→ GoOdGaMe:自己加了 才会显示出结果 03/22 20:17
9F:→ GoOdGaMe:是不是 跟这个有关系呢? 03/22 20:18
10F:→ godfat:p 就是 call inspect, puts 是 call to_s 03/22 21:45
11F:→ GoOdGaMe:感谢版主解释,又学到了一点 03/23 11:31