我意识到如果它是数组中的最后一个元素,可以省略散列的大括号。例如,形式:在阵列中忽略大括号的花括号
[1, 2, 3, :a => 'A', :b => 'B']
[1, 2, 3, a: 'A', b: 'B']
似乎是相同的:
[1, 2, 3, {:a => 'A', :b => 'B'}]
[1, 2, 3, {a: 'A', b: 'B'}]
我知道这种省略的是可能的方法的参数,但没有指出可能的是一个数组。我对这条规则的理解是正确的吗?而且,这是在什么地方描述的?
我想在理论上,'[[]]'是一个方法调用看起来像'def x(* args)'的方法,所以这种行为是有道理的。也许挖数组文字处理C代码,看看它是如何处理内部。 – 2012-02-17 19:59:33
虽然我不会将它用作编码练习。我更喜欢看到由'{'和'}'提供的视觉分隔,并且会在代码审查中声明。这是一个维护和可读性问题。 – 2012-02-17 20:11:50
@ muistooshort即使它不是方法调用,它也可以工作。这适用于创建一个数组。 – sawa 2012-02-17 20:16:11