Golang学习日志 ━━ 函数传递指针参数的语法糖误区

Butterfly ·
更新时间:2024-11-10
· 637 次阅读

一句话,函数传入指针参数可用语法糖省掉,但目前版本只针对结构体有效,如下*

package main import ( "fmt" ) func main() { s1 := 2 fmt.Println("p1:", p1(&s1)) //p1: 3 s2 := 2 p2(&s2) fmt.Println("p2:", s2) //p2: 3 var s3 ss1 s3.b = 2 p3(&s3) fmt.Println("p3:", s3) //p3: 4 } func p1(x *int) int { fmt.Println(x) fmt.Println(*x) (*x)++ //x++ //(*x 语法糖无法使用) return *x } func p2(x *int) { fmt.Println(x) fmt.Println(*x) *x = 20 //x++ //(*x 语法糖无法使用) } func p3(x *ss1) { fmt.Println(x) fmt.Println(*x) (*x).b++ x.b++ //(*x 语法糖可用) } type ss1 struct { a string b int c []int d map[string]int }

所以建议还是用完整方式写,远离某些糖


作者:暂时先用这个名字



参数 函数 语法糖 指针 golang

需要 登录 后方可回复, 如果你还没有账号请 注册新账号