golang 中的值传递和指针传递的理解?
資深大佬 : chinafengzhao 2
上代码
package main import( "fmt" ) // 声明一个基于 int 的类型 Integer type Integer int // 基于指针的传递( Integer 类型的指针变量 a ) func (a* Integer) Add_pointer (b Integer) { *a += b } // 基于值的传递,按理,经过这次调用,也是对 a 进行重新赋值,为什么调用之后,再去打印,还是以前的值? func (a Integer) Add_value (b Integer) { a += b } func main() { var a Integer = 1 var b Integer = 1 a.Add_pointer(2) b.Add_value(2) fmt.Println("a =", a) fmt.Println("b =", b) } // a=3 // b=1
为什么会有这个输出?
大佬有話說 (14)