• 9.20Go之初始化内嵌结构体


    9.20Go之初始化内嵌结构体

    内嵌结构体的初始化方法

    结构体内嵌初始化时,将结构体内嵌的类型作为字段名像普通结构体一样进行初始化

    类似匿名结构体的初始化方法,可以选择具体需要初始化的成员:

    示例代码:

    package main

    import "fmt"

    /*
    定义三个结构体
    */
    type Wheel struct {
       Size int
    }

    type Engine struct {
       Power int //功率
       Type string //类型
    }

    //结构体:车
    type Car struct {
       //内嵌结构体
       Wheel
       Engine
    }

    func main() {
       //初始化结构体Car同时初始化内嵌的结构体
       c := Car{
           //吃实话内嵌的结构体,视内嵌的结构体为成员进行初始化
           Wheel:Wheel{
               Size: 18,
          },
           //初始化另一个内嵌结构体,视为成员
           Engine:Engine{
               Power: 100,
               //可以选择成员进行初始化
          },
      }

       //打印c
       fmt.Println(c)
    }

    初始化内嵌匿名结构体

    package main

    import "fmt"

    type WheelNo2 struct {
       size int
    }

    /*
    该结构体内内嵌一个匿名结构体
    */
    type CarNo2 struct {
       WheelNo2
       //引擎
       EngineNo2 struct{
           Power int
           Type string
      }
    }

    func main() {
       //初始化最外层结构体变量
       c := CarNo2{
           WheelNo2:WheelNo2{
               22,
          },
           //因为EngineNo2是匿名内嵌结构体,所以使用初始化匿名结构体的方法
           EngineNo2: struct {
               Power int
               Type  string
          }{Power: 100, Type: "大功率"},
      }

       fmt.Println(c)
    }

     

    It's a lonely road!!!
  • 相关阅读:
    10查询结果排序
    11汇总和分组数据
    09查询基础
    07修改数据
    08删除数据
    06插入数据
    PHP 判断数组是否为空的5大方法
    Mysql模糊查询like效率,以及更高效的写法
    经典面试题golang实现方式(一)
    php调用c语言编写的so动态库
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15315067.html
Copyright © 2020-2023  润新知