Какой смысл иметь "x ... n" в Ruby? - PullRequest
4 голосов
/ 20 января 2011

Мне просто любопытно.

Разве оба фрагмента кода ниже делают одно и то же?Почему кто-то хочет использовать ... вместо .., не будет ли .. легче читать?

for x in 1...11
     puts x
end

for x in 1..10
 puts x
end

Извините, если это слишком субъективно, я просто не понимаю, почему я хотел бы пойтиот 1 to (n-1) вместо 1 to n

Ответы [ 3 ]

10 голосов
/ 20 января 2011

10.5 включено в 1...11, но не в 1..10.

Это не 1 to n против 1 to (n - 1), это 1 <= x <= n против 1 <= x < m.

5 голосов
/ 20 января 2011

Иногда индекс в некоторой структуре данных переходит от 0 к struct.size () - 1. Тогда полезно иметь способ сказать это:

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

выведет 'a', 'b', 'c'.Если вы используете .. форму, она напечатает дополнительную nil.

0 голосов
/ 20 января 2011

Если вы используете n - 1, то, если n равно 0, вы получите n - 1 из -1, что используется для обозначения конца массива.

array[0...0] # Returns no elements
array[0..-1] # Returns all elements
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...