Can anyone explain this array declaration to me?
just wondering the difference between the presence of the last comma in the array, if there is any at all
开发者_JAVA技巧>> [1,2,3]
=> [1, 2, 3]
>> [1,2,3,]
=> [1, 2, 3]
The second array still works, no exception raised
Thanks
There's no difference. In Ruby, you're free to add a trailing comma to an array. It makes syntax like this:
a = [
1,
2,
3,
]
A bit nicer, in some cases (e.g., if you want to add an element, you simply add a 4,
line and don't have to worry about checking for a comma on the last line).
It isn't a error, just a empty value(ignored by the compiler), but I suggest you to read Understanding Ruby Arrays
There is nothing special about arrays.
[1,2,3]
is the same as
Array.[](1,2,3)
so the values are just method call parameters. The same applies to
{a: 1, b: 2}
which is the same as
Hash.[](:a, 1, :b, 2)
And the reason trailing commas are allowed in method-call parameters is just because Ruby is designed like that, for the reasons of convenience that @mipadi
mentioned.
精彩评论