• go 的指针比较简单,他不能运算
  • go 传参只有“值传递”一种方式

参数传指针变量代替引用

package main

import (
    "fmt"
)

func swap(a, b *int) {
    *b, *a = *a, *b
}

func main() {
    a, b := 3, 4
    fmt.Println(a, b)
    swap(&a, &b)
    fmt.Println(a, b)
}

直接返回变量,也可以达到效果

package main

import (
    "fmt"
)

func swap(a, b int) (int, int) {
    b, a = a, b
    return a, b
}

func main() {
    a, b := 3, 4
    fmt.Println(a, b)
    a, b = swap(a, b)
    fmt.Println(a, b)
}