Golang值传递和指针传递

Posted tomtellyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang值传递和指针传递相关的知识,希望对你有一定的参考价值。

Golang值传递和指针传递

package main

import (
    "fmt"
)

func swap1(x, y, p *int) {
    if *x > *y {
        *x, *y = *y, *x
    }
    *p = *x * *y
}

func swap2(x, y int) (int, int, int) {
    if x > y {
        x, y = y, x
    }
    return x, y, x * y
}

func main() {
    i := 9
    j := 5
    product := 0
    swap1(&i, &j, &product)
    fmt.Println(i, j, product)    //5 9 45

    a := 64
    b := 23
    a, b, p := swap2(a, b)
    fmt.Println(a, b, p)   //23 64 1472
}

以上是关于Golang值传递和指针传递的主要内容,如果未能解决你的问题,请参考以下文章

golang中指针,new和make函数作用

golang有没有必要传递map指针

Golang中函数传参存在引用传递吗?

golang-101-hacks(12)——切片作为函数参数传递

go map and slice 2021-10-08

片段和活动之间没有传递值