この質問に興味をそそられて、配列とメソッド呼び出しを使用した並列割り当てで少し遊んでみました。したがって、配列内の2つのメンバーを値で交換しようとするパラダイム的な例を次に示します。
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
割り当て内のメソッドを呼び出す順序に関係していると思いますが、はっきりとはわかりません。誰かが下の順序を説明できますか?最初の例ではメンバーが交換されず、2番目の例では交換されないのはなぜですか?