日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)GO教程:Go語言初始化內嵌結構體

結構體內嵌初始化時,將結構體內嵌的類型作為字段名像普通結構體一樣進行初始化,詳細實現(xiàn)過程請參考下面的代碼。

網站建設哪家好,找創(chuàng)新互聯(lián)!專注于網頁設計、網站建設、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了前鋒免費建站歡迎大家使用!

車輛結構的組裝和初始化:

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: 18,
        },

        // 初始化引擎
        Engine: Engine{
            Type:  "1.4T",
            Power: 143,
        },
    }

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

}

代碼說明如下:

  • 第 6 行定義車輪結構。
  • 第 11 行定義引擎結構。
  • 第 17 行定義車結構,由車輪和引擎結構體嵌入。
  • 第 27 行,將 Car 的 Wheel 字段使用 Wheel 結構體進行初始化。
  • 第 32 行,將 Car 的 Engine 字段使用 Engine 結構體進行初始化。

初始化內嵌匿名結構體

在前面描述車輛和引擎的例子中,有時考慮編寫代碼的便利性,會將結構體直接定義在嵌入的結構體中。也就是說,結構體的定義不會被外部引用到。在初始化這個被嵌入的結構體時,就需要再次聲明結構才能賦予數據。具體請參考下面的代碼。

package main

import "fmt"

// 車輪
type Wheel struct {
    Size int
}

// 車
type Car struct {
    Wheel
    // 引擎
    Engine struct {
        Power int    // 功率
        Type  string // 類型
    }
}

func main() {

    c := Car{

        // 初始化輪子
        Wheel: Wheel{
            Size: 18,
        },

        // 初始化引擎
        Engine: struct {
            Power int
            Type  string
        }{
            Type:  "1.4T",
            Power: 143,
        },
    }

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

}

代碼說明如下:

  • 第 14 行中原來的 Engine 結構體被直接定義在 Car 的結構體中。這種嵌入的寫法就是將原來的結構體類型轉換為 struct{…}。
  • 第 30 行,需要對 Car 的 Engine 字段進行初始化,由于 Engine 字段的類型并沒有被單獨定義,因此在初始化其字段時需要先填寫 struct{…} 聲明其類型。
  • 第 3行開始填充這個匿名結構體的數據,按“鍵:值”格式填充。

文章標題:創(chuàng)新互聯(lián)GO教程:Go語言初始化內嵌結構體
轉載來源:http://m.5511xx.com/article/cdjhsis.html