Golang入门到项目实战 | golang模拟OOP的属性和方法

Posted 一个热爱编程的通信人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang入门到项目实战 | golang模拟OOP的属性和方法相关的知识,希望对你有一定的参考价值。

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

以上是关于Golang入门到项目实战 | golang模拟OOP的属性和方法的主要内容,如果未能解决你的问题,请参考以下文章

Golang入门到项目实战 | golang构造函数

Golang入门到项目实战 | golang方法

Golang入门到项目实战 第一个golang应用

Golang入门到项目实战 golang匿名函数

Golang入门到项目实战 golang 函数

Golang入门到项目实战 golang for循环语句