2011-01-20 124 views
4

我只是好奇。Ruby中有「x ... n」的意思是什麼?

Arent下面的代碼片段做同樣的事情?爲什麼有人想用...而不是..,wouldnt ..更容易閱讀?

for x in 1...11 
    puts x 
end 

for x in 1..10 
puts x 
end 

很抱歉,如果這是太主觀了,我只是不明白爲什麼我會希望從1 to (n-1)而不是1 to n

回答

10

10.5包含在1...11中,但不包含在1..10中。

這不是1 to n1 to (n - 1),它是1 <= x <= n1 <= x < m

+3

更確切地說,有一個*無限*,它包含在`1 ... 11`而不是在`1..10`,即它們都是數的數量不是`10`更高,但是小於「11」。鑑於兩者之間存在無窮多的差異,我認爲這符合「不做同樣的事」。 – 2011-01-20 05:16:26

5

去有時,一些數據結構中的索引形式去0至struct.size() - 1.這是有幫助的,然後有說這句話的方式:

a = ['a','b','c'] 
for i in 0 ... a.length 
    puts a[i] 
end 

將打印'a''b''c'。它使用..表格它將打印另外的nil

0

如果您使用n - 1,那麼如果n爲0,那麼您將有n - 1爲-1,該值用於指示數組的末尾。

array[0...0] # Returns no elements 
array[0..-1] # Returns all elements