1.先创建一个结构体
type Test struct{
name string //给结构体绑定一个字段,用以说明结构体和结构体指针绑定函数的区别
}
2.给结构体绑定函数
func (test Test) function(){
test.name = "结构体"
}
3.给结构体指针绑定函数
func(test *Test) pointFunction(){
test.name = "结构体指针"
}
4.在main方法中调用
func main(){
test := &Test{"创建的"} //同Java中的new Test("创建的"),返回实例对象的引用(地址)
test.function() //调用结构体函数,系统帮你转成(*test).function。
fmt.Println("name = ",test.name) // 打印 name = "创建的",因为是值传递,不修改name的实际值
var test1 Test
// java中对于只声明,没有关联内存地址的值会报空指针异常。golang不会。系统默认会转为(&test).pointFunction
test1.pointFunction()
fmt.Println("打印结构体指针绑定的方法")
fmt.Println("name = ",test1.name) //name = "结构体指针",是引用传递会修改test.name的内容
}