Go语言方法规则
根据调用者不同,方法分为两种表现形式:方法(method value)、方法表达式(method expression)。
两者都可像普通函数那样赋值和传参,区别在于 方法 (method value)绑定了实例,而方法表达式(method expression)必须显式传参。
直接调用
直接调用,类型 T 和 *T 上的方法集是互相继承的。
直接调用,类型 S 包含匿名字段 *T 或 T ,则 S 和 *S 方法集包含 T 和 *T 上的方法集是互相继承的。
隐式传递调用
接受者隐式传递,类型 T 和 *T 上的方法集是互相继承的。
接受者隐式传递,类型 S 包含匿名字段 *T 或 T ,则 S 和 *S 方法集包含 T 和 *T 上的方法集是互相继承的。
显式传递调用
接受者显示传值,类型 T 的可调用方法集包含接受者为 T 的所有方法,不包含接受者为 *T 的方法。类型 *T 的可调用方法集包含接受者为 *T 或 T 的所有方法集。
接受者显示传值,类型 S 包含匿名字段 *T ,则 S 和 *S 方法集包含 T 和 *T 上的方法集是互相继承的。
类型 S 包含匿名字段 T ,类型 S 的可调用方法集包含接受者为 T 的所有方法,不包含接受者为 *T 的方法。类型 *S 的可调用方法集包含接受者为 *T 或 T 的所有方法集。
下一篇:
Go语言方法应用------敬请期待!
第一章 环境搭建
第二章 Go语言基础
第三章 Go语言程序结构
第四章 Go语言基本类型
第五章 Go语言引用类型
第六章 自定义类型与指针
第七章 流程控制
第八章 函数
第九章 方法
看完本文有收获?那就分享给更多人吧
领取专属 10元无门槛券
私享最新 技术干货