zoukankan      html  css  js  c++  java
  • 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!!!
  • 相关阅读:
    echarts常用说明
    ionic4打包和ngix配置
    浏览器onbeforeunload
    vue中keepAlive的使用
    面试题
    git使用
    git常用命令
    ajax原理
    关于npm(一)
    React、Vue、Angular对比 ---- 新建及打包
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15315067.html
Copyright © 2011-2022 走看看