开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜