深受this question的影響,我在數組和方法調用中扮演了一點平行賦值的角色。所以這裏是一個範例,試圖通過它們的值交換數組中的兩個成員:使用並行賦值交換數組元素
deck = ['A', 'B', 'C']
#=> ["A", "B", "C"]
deck[deck.index("A")], deck[deck.index("B")] = deck[deck.index("B")], deck[deck.index("A")]
#=> ["B", "A"]
deck
#=> ["A", "B", "C"]
該數組沒有更改。但是,如果我們改變參數的順序,它的工作原理:
deck[deck.index("B")], deck[deck.index("A")] = deck[deck.index("A")], deck[deck.index("B")]
#=> ["A", "B"]
deck
#=> ["B", "A", "C"]
我猜它與調用分配中的index
方法的順序做,但不能看清楚。有人可以解釋下面的事情的順序,爲什麼第一個例子不交換成員,第二個呢?
並行任務是有用的,但對於這種任務,在那裏你會繼續之前查找數組中的變量的位置好像一個Hash是因爲它直接查找的更有用的結構。如果你重複地執行你的任務,就像在內部循環中一樣,這將會很昂貴,並且散列會超出它。 – 2010-11-15 15:07:37
同意,這裏的例子是假設的,部分來自另一個問題。 – 2010-11-15 15:55:24
現在我已經根據您的問題創建了一個問題! – 2010-12-02 23:43:07