Go语言是不用类和继承
的,原因应该是其太复杂了。
在面向对象编程中,类
用来将数据和函数绑在一起,例如:
Person
+---------------------------------------------+
| Name: String | <- data
| Age: Int |
+---------------------------------------------+
| SayHello() | <- function
+---------------------------------------------+
在Go语言中,我们也可以实现上述的绑定,但不是类,而是receiver function
。
首先,我们定义数据结构:
type person struct {
name string
age int
}
参考
https://www.bogotobogo.com/GoLang/GoLang_Structs.php
https://appdividend.com/2019/03/23/golang-receiver-function-tutorial-go-function-receivers-example/
https://grisha.org/blog/2016/09/22/golang-receiver-vs-function/
然后,完成数据结构与函数的绑定:
func (p person) SayHello() { // Function SayHello() can receive person type variable
log.Print("Hello ", p.name)
}
最后,创造变量并调用receiver function
:
p := person{"Peter",18}
p.SayHello();
完整代码:
package main
import (
"log"
)
type person struct {
name string
age int
}
func (p person) SayHello() {
log.Print("Hello ", p.name)
}
func main() {
p := person{"Peter",18}
p.SayHello();
}
运行结果:
2021/06/21 09:48:46 Hello Peter
网友评论