美文网首页
Go语言 如何 初始化 内嵌结构体

Go语言 如何 初始化 内嵌结构体

作者: 码二哥 | 来源:发表于2020-02-10 15:51 被阅读0次

参考:
http://c.biancheng.net/view/74.html

结构体内嵌初始化时,将结构体内嵌的类型作为字段名像普通结构体一样进行初始化,详细实现过程请参考下面的代码。

package main

import "fmt"

type Wheel struct {
    Size int
}

type Engine struct {
    Power int
    Type string
}

type Car struct {
    Wheel
    Engine
}

func main() {
    c := Car{
        Wheel : Wheel{
            Size: 2,
        },
        Engine : Engine{
            Power: 3,
            Type: "12.3",
        },
    }

    fmt.Printf("%+v\n", c)
}

初始化内嵌结构体

在前面描述车辆和引擎的例子中,有时考虑编写代码的便利性,会将结构体直接定义在嵌入的结构体中。也就是说,结构体的定义不会被外部引用到。在初始化这个被嵌入的结构体时,就需要再次声明结构才能赋予数据。具体请参考下面的代码。

package main

import "fmt"

type Tree struct {
    name string
}

type poplar struct {
    Tree

    Info struct {
        Leaf string
        Num  int
    }
}

func main() {
    p := poplar{
        Tree: Tree{
            name: "small yellow",
        },
        Info: struct {
            Leaf string
            Num  int
        }{Leaf: "yellow", Num: 20},
    }

    fmt.Printf("poplar value:\t%v", p)
}

如何初始化内嵌结构体

相关文章

  • Go语言 如何 初始化 内嵌结构体

    参考:http://c.biancheng.net/view/74.html 结构体内嵌初始化时,将结构体内嵌的类...

  • GO语言学习

    go语言的结构体 声明:type 结构体名 struct{x,y int}初始化:未显示初始化结构体变量的,初始值...

  • 第03天(复合类型)_结构体的基本使用

    29_结构体普通变量初始化 30_结构体指针变量初始化.go 31_结构体成员的使用:普通变量.go 32_结构体...

  • Golang——结构体struct

    Go语言中没有“类”的改变,不支持类的“继承”等面向对象概念。Go语言中通过结构体的内嵌再配合接口比面向对象更具有...

  • 11.结构体

    Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具...

  • Go语言基础之结构体

    Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具...

  • go 的选项模式

    现在有个结构体如下定义: 我们需要初始化结构体,如果是其他语言,函数支持默认参数: 但是,go语言函数不支持默认参...

  • UIGeometry - 几何

    UIEdgeInsets 内嵌 UIOffset 偏移 Value 转换 (拓展) 初始化 各种结构体 转化 NS...

  • Go语言内嵌结构体成员名字冲突

    参考:http://c.biancheng.net/view/75.html 嵌入结构体内部可能拥有相同的成员名,...

  • golang继承与接口

    继承 结构体 Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继 承...

网友评论

      本文标题:Go语言 如何 初始化 内嵌结构体

      本文链接:https://www.haomeiwen.com/subject/haiaxhtx.html