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

go语言没有面向对象编程思想,也没有继承关系,但是可以通过结构体嵌套来实现这种效果。

下面通过实例演示如何实现结构体嵌套,假如有一个人Person结构体,这个人还养了一个宠物Dog结构体

下面我们来看一下:

Dog结构体

type Dog struct {
    name  string
    color string
    age   int
}

Person结构体

type person struct {
    dog  Dog
    name string
    age  int
}

访问它们

package main

import "fmt"

type Dog struct {
    name  string
    color string
    age   int
}

type person struct {
    dog  Dog
    name string
    age  int
}

func main() {
    var tom person
    tom.dog.name = "花花"
    tom.dog.color = "黑白花"
    tom.dog.age = 2

    tom.name = "tom"
    tom.age = 20

    fmt.Printf("tom: %v\n", tom)
}

运行结果

[Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
tom: {{花花 黑白花 2} tom 20}