【Go编程基础】11-方法method
方法method
- Go 中虽没有class,但依旧有method
- 通过显示说明receiver来实现与某个类型的组合
- 只能为同一个包中的类型定义方法
- Receiver 可以是类型的值或者指针
- 不存在方法重载
- 可以使用值或指针来调用方法,编译器会自动完成转换
- 从某种意义上来说,方法是函数的语法糖,因为receiver其实就是
- 方法所接收的第1个参数(Method Value vs. Method Expression)
- 如果外部结构和嵌入结构存在同名方法,则优先调用外部结构的方法
- 类型别名不会拥有底层类型所附带的方法
- 方法可以调用结构中的非公开字段
1 | type A struct { |
1 | type A struct { |
1 | type TZ int |
1 | type A struct { |
思考问题
- 根据为结构增加方法的知识,尝试声明一个底层类型为int的类型,
- 并实现调用某个方法就递增100。
- 如:a:=0,调用a.Increase()之后,a从0变成100。
1 | type A int |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Clang's Blog!
评论