type A struct {
Num int
}
// 给A类型绑定一个方法
func (a A) test(args int) {
fmt.Println("args:", args) // args: 45
a.Num = args
fmt.Println(a) // {45} a是值拷贝,和main中的a1没有关系
}
// 给A类型指针绑定一个方法
func (a *A) test1(args int) string {
fmt.Println("test1 args:", args) // test1 args: 4
a.Num = args
fmt.Println(a) // &{4} a是指针,和main中的a1指向的内容相同
return "this is a test"
}
func main() {
var a1 = A{}
a1.test(45) // 输出 args: 45
fmt.Println(a1) // {0}
// 标准写法
result := (&a1).test1(4)
fmt.Println(result) // this is a test
// 简写
result = a1.test1(4)
fmt.Println(result) // this is a test
fmt.Println(a1) // &{4}
}
08-19
1635
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
10-20
940
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-14
8341
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)