![WX20210128-221921@2x.png](https://static.studygolang.com/210128/17faf18013221e0cbb09d63463cab0e5.png)
swap中交换两个数,*a, *b = *b, *a 这条赋值语句是怎么执行的,个人觉得打印结果应该是4,4因为如果先将b的值付给a,那么a此时已经改了,如果再将a的值赋给b,不应该是4吗?
可以了解下多重赋值原理的
上述swap函数在底层的伪代码
```go
func swap(a, b *int) {
a_tmp := *a
b_tmp := *b
*a = b_tmp
*b = a_tmp
}
```
#1