一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!


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...