2011-01-20 3 views
4

私はちょうど興味があります。Rubyで「x ... n」を持つ点は何ですか?

同じことを以下の両方のコードスニペットに付けることができますか?なぜ誰かが..の代わりに...を使用したいと思いますが、..は読みやすくなりますか?申し訳ありません

for x in 1...11 
    puts x 
end 

for x in 1..10 
puts x 
end 

、これはあまりにも主観的であるならば、私はちょうど)(時々、いくつかのデータ構造内のインデックスがstruct.sizeにフォーム0になり、私が代わりに1 to n

答えて

10

10.5は、1...11に含まれますが、1..10には含まれません。

それは1 <= x <= n1 <= x < mだ、1 to n1 to (n - 1)ではありません。

+3

は、より正確には、があります*無限*、 '1..10'に' 1 ... 11 'ではなくである、すなわちすべての数字を含まれている数字の量10'を 'よりも大きいが、 「11」未満である。両者の間に無限に多くの違いがあることを考えると、私は「同じことをしない」という資格があると主張しています。 –

+0

非常にうまく学問的に置かれて、@Jörg。 :) – deceze

+0

@Joerg:最低でもMRI/YARVでは、10から11の間に有限数のFloatがありませんか? –

5

1 to (n-1)から行きたいと思う理由を理解しません -

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

'a''b''c'印刷されます:1。それから、これを言っの方法を持っていると便利です。 ..フォームを使用すると、追加のnilが印刷されます。

0

n - 1を使用する場合、nが0の場合は、n - 1が-1の配列の終わりを示すために使用されます。

array[0...0] # Returns no elements 
array[0..-1] # Returns all elements 
関連する問題