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!!!
  • 相关阅读:
    mysql 常用命令
    MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
    php 第1讲 html介绍 html运行原理①
    php 开山篇
    Sublime Text 2
    java 抽象类和接口整理
    petri 网理论与研究(第一节140915)
    程序员应该读的书
    python logging模块小记
    常见设计模式,单例模式(双重检测锁方式)示例
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15315067.html
Copyright © 2011-2022 走看看