在 ruby Range 对象中使用三点表示法时,我得到以下结果:
(0...5).each{|n| p n}
0
1
2
3
4
当我使用“最后”方法时,我得到:
(0...5).last
=> 5
我本来期望 4
这是一个错误吗?或者我对 Range 对象的概念有什么不理解的地方?
这是设计使然。 Ruby 2.0 文档是更具体:
请注意,没有参数last
将返回定义范围末尾的对象,即使exclude_end?
is true
.
(10..20).last #=> 20
(10...20).last #=> 20
(10..20).last(3) #=> [18, 19, 20]
(10...20).last(3) #=> [17, 18, 19]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)