在ruby Range对象中使用三点符号时,我得到:
(0...5).each{|n| p n}
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
当我使用'last'方法时,我得到:
(0...5).last
=> 5
Run Code Online (Sandbox Code Playgroud)
我原以为4
这是一个错误吗?或者有什么我不了解Range对象的概念?
Ste*_*fan 12
这是设计的.Ruby 2.0文档更具体:
请注意,没有参数
last将返回定义范围结束的对象,即使exclude_end?是true.Run Code Online (Sandbox Code Playgroud)(10..20).last #=> 20 (10...20).last #=> 20 (10..20).last(3) #=> [18, 19, 20] (10...20).last(3) #=> [17, 18, 19]