2009-11-24 3 views
4

просто интересна разница между наличием последней запятой в массиве, если есть у всеМожет ли кто-нибудь объяснить это объявление массива мне?

>> [1,2,3] 
=> [1, 2, 3] 

>> [1,2,3,] 
=> [1, 2, 3] 

Второй массив все еще работает, исключение не подняло

Благодарности

+0

Предлагаю вам изменить заголовок вопроса во что-то более объяснительное. –

+0

Я убрал его для него немного –

+0

Спасибо Аллен !! – penger

ответ

7

Там нет разница. В Ruby вы можете добавлять конечную запятую к массиву. Это делает синтаксис, как это:

a = [ 
    1, 
    2, 
    3, 
] 

Немного лучше, в некоторых случаях (например, если вы хотите добавить элемент, вы просто добавляете 4, линию и не придется беспокоиться о проверке запятой на последняя строка).

+0

не добавляет ничего или что-то еще? Длина массива совпадает с w/или без запятой? –

+0

Нет, добавлено пустое значение - массив просто содержит элементы 1,2,3 в любом случае. – mipadi

+0

Я думаю, что нет никакой разницы, действительно ли? Это действительно из любопытства, я кодировал и нашел что-то вроде этого, поэтому, я думаю, я попрошу всех вас умных людей здесь. – penger

0

Это не ошибка, просто пустое значение (игнорируется компилятором), но я предлагаю вам прочитать Understanding Ruby Arrays

+1

Где именно эта ссылка упоминает дополнительную запятую? –

0

Там нет ничего особенного о массивах.

[1,2,3] 

такое же, как

Array.[](1,2,3) 

так что значения являются только параметры вызова метода. То же самое относится и к

{a: 1, b: 2} 

который является таким же, как

Hash.[](:a, 1, :b, 2) 

И причина задней запятые разрешено в параметрах метода-вызова только потому, что рубин разработан так, по причинам удобства, которые @mipadi упомянутый.