【Go学习笔记】11、方法method
HundredLee
· · 768 次点击 ·
·
开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
方法method
- Go中虽没有class,但依旧有method
- 通过显示说明receiver来实现与某个类型的组合
- 只能为同一个包中的类型定义方法
- Receiver 可以使类型的值或者指针
- 不存在方法重载
- 可以使用值或指针来调用方法,编译器会自动完成转换
- 从某种意义上来说,方法是函数的语法糖,因为receiver其实就是方法所接收的第1个参数(Method Value vs. Method Expression)
- 如果外部结构和潜入结构存在同名方法,则优先调用外部结构的方法
- 类型别名不会拥有底层类型所附带的方法
- 方法可以调用结构中的非公开字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| type A struct { Name string } func main (){ a := A{Name:"yibai"} a.PrintName() (*A).PrintName(&a) } func (a *A) PrintName () { a.Name = "hundredlee" fmt.Println(a.Name) }
|
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889