一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
golang没有面向对象的概念,也没有封装和概念,但是可以通过结构体struct和函数绑定来实现OOP的属性和方法等特性。接收者receiver方法。
例如,想要定义一个Person类,有name和age属性,有eat/sleep/work方法。
package main
import "fmt"
type Person struct {
name string
age int
}
func (per Person) eat() {
fmt.Println("eat...")
}
func (per Person) sleep() {
fmt.Println("sleep...")
}
func (per Person) work() {
fmt.Println("work...")
}
func main() {
per := Person{
name: "tom",
age: 20,
}
fmt.Printf("per: %v\n", per)
per.eat()
per.sleep()
per.work()
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
per: {tom 20}
eat...
sleep...
work...