Tag: 并行赋值

使用并行赋值交换数组元素

这个问题引起了我的兴趣,我用数组和方法调用进行了并行分配。 所以这是一个典范示例,试图通过它们的值交换数组中的两个成员: 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”] arrays没有改变。 但是如果我们改变参数的顺序,它就有效: deck[deck.index(“B”)], deck[deck.index(“A”)] = deck[deck.index(“A”)], deck[deck.index(“B”)] #=> [“A”, “B”] deck #=> [“B”, “A”, “C”] 我想它与在赋值中调用index方法的顺序有关,但是没有清楚地看到它。 有人可以解释下面的事情的顺序,以及为什么第一个例子没有交换成员,第二个例子呢?