Golang 给结构体或结构体指针绑定函数的区别
package main
import "fmt"
type Test struct{
name string
}
//给结构体绑定函数 值传递
func (test Test) function(){
test.name = "结构体"
}
//给结构体指针绑定函数 引用传递
func(test *Test) pointFunction(){
test.name = "结构体指针"
}
func main(){
test := &Test{"创建赋值"}
test.function()
fmt.Println("name = ",test.name) // 打印 name = "创建赋值",因为是值传递,不修改name的实际值
var test1 Test
test1.pointFunction()
fmt.Println("name = ",test1.name) // 打印 name = "结构体指针",是引用传递会修改test.name的内容
}