内容简介:什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。method的语法:func (r Receiver) funcName (parameters) (result)。receiver可以看作是method的第一个参数,method并且支持继承和重写。
什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。method的语法:func (r Receiver) funcName (parameters) (result)。receiver可以看作是method的第一个参数,method并且支持继承和重写。
/** * 什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。 * method的语法:func (r Receiver) funcName (parameters) (result)。 * receiver可以看作是method的第一个参数,method并且支持继承和重写。 */ package main import ( "fmt" ) type Human struct { name string age int } // 字段继承 type Student struct { Human // 匿名字段 school string } type Employee struct { Human // 匿名字段 company string } // 函数的另外一种形态:method,语法:func (r Receiver) funcName (parameters) (result) // method当作struct的字段使用 // receiver可以看作是method的第一个参数,指针作为receiver(接收者) // 指针作为receiver和普通类型作为receiver的区别是指针会对实例对象的内容发生操作,普通类型只是对副本进行操作 // method也可以继承,下面是一个匿名字段实现的method,包含这个匿名字段的struct也能调用这个method func (h *Human) Info() { // method里面可以访问receiver(接收者)的字段 fmt.Printf("I am %s, %d years old\n", h.name, h.age) } // method重写,重写匿名字段的method // 虽然method的名字一样,但是receiver(接收者)不一样,那么method就不一样 func (s *Student) Info() { fmt.Printf("I am %s, %d years old, I am a student at %s\n", s.name, s.age, s.school) } func (e *Employee) Info() { fmt.Printf("I am %s, %d years old, I am a employee at %s\n", e.name, e.age, e.company) } func main() { s1 := Student{Human{"Jack", 20}, "tsinghua"} e1 := Employee{Human{"Lucy", 26}, "Google"} // 调用method通过.访问,就像struct访问字段一样 s1.Info() e1.Info() }
以上所述就是小编给大家介绍的《Golang语言中的method是什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 计算机语言发展的三个阶段:机器语言、汇编语言与高级语言
- 凹 (“Wa”) 语言:可以嵌入 Go 语言环境的脚本语言
- Rust语言恰巧是一门解决了Go语言所有问题的语言
- 获取系统语言/当前 App支持语言
- 【Go 语言教程】Go 语言简介
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。