我意識到如果它是數組中的最後一個元素,可以省略散列的大括號。例如,形式:在陣列中忽略大括號的花括號
[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