1

我现在正在尝试学习红宝石。我对范围有疑问。帮助我理解红宝石范围。另请参考一些最常用的数组方法。

0..3
0...3

这两者有什么区别?

4

2 回答 2

2
(0..3).to_a=>[0,1,2,3]
(0...3).to_a=>[0,1,2]

第一个将包括最后一个元素,第二个将排除最后一个元素..

为 ruby​​ 中的所有引用学习 ruby​​doc

访问http://www.ruby-doc.org/core-1.9.3/Array.html获取数组。

希望这可以帮助

于 2013-01-07T04:20:13.507 回答
2

两点形式创建一个包含范围,而三点形式创建一个排除指定高值的范围。

(1..5)        #==> 1, 2, 3, 4, 5 ***INCLUSIVE
(1...5)       #==> 1, 2, 3, 4

所以,

(1..5)==(1...5)  #==> false

字符串的例子更有趣:

('a'..'d')    #==> 'a', 'b', 'c', 'd' ***INCLUSIVE
('bar'..'bat')#==> "bar", "bas", "bat" ***INCLUSIVE

另一种表示包含范围的方式是Range.new(0,2)

(0..5) == Range.new(0,5)    #=> true

有关更多信息,您可能想了解更多关于范围的信息: http ://www.ruby-doc.org/core-1.9.3/Range.html

于 2013-01-07T04:21:20.263 回答