最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go嵌套匿名結(jié)構(gòu)體的初始化詳解

 更新時(shí)間:2020年12月15日 15:07:14   作者:darkalliance  
這篇文章主要介紹了go嵌套匿名結(jié)構(gòu)體的初始化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

go匿名結(jié)構(gòu)體

嵌套匿名結(jié)構(gòu)體的 示例代碼片.

type debugConfig struct {
 MaxQueueDepth int      `json:"maxQueueDepth"`
 ListenerEntries string `json:"listenerEntries"`
 Listeners  string
 Logging   struct {
 Info  string `json:"info"`
 Protocol string `json:"protocol"`
 Errlog string `json:"error"`
 Debug string `json:"debug"`
 }
}

初始化方式一

上述嵌套匿名結(jié)構(gòu)體初始化賦值的示例代碼片

 user1 := &debugConfig {
 MaxQueueDepth: 100,
 ListenerEntries: "hello",
 Listeners: "world",
 Logging: struct {
 Info  string `json:"info"`
 Protocol string `json:"protocol"`
 Errlog string `json:"error"`
 Debug string `json:"debug"`
 }{
 Info:"good",
 Protocol: "story",
 Errlog: "shenqi",
 Debug: "shuma",
 },
 }

說(shuō)明

匿名 struct 直接初始化的時(shí)候是需要給出它的結(jié)構(gòu)的。

初始化方式二

上述嵌套匿名結(jié)構(gòu)體初始化賦值的示例代碼片

 var user2 debugConfig
 user2.MaxQueueDepth = 100
 user2.ListenerEntries = "hello"
 user2.Listeners = "world"
 user2.Logging.Info = "good"
 user2.Logging.Protocol = "story"
 user2.Logging.Errlog = "shenqi"
 user2.Logging.Debug = "shuma"

說(shuō)明

這種方式寫起來(lái)更清晰省事兒~

補(bǔ)充:golang 使用匿名結(jié)構(gòu)體的問(wèn)題

golang允許使用匿名結(jié)構(gòu)體,形如

type Test struct {
  param1 struct {
    param2 string
  }
}

一般在使用的時(shí)候可以直接這樣初始化

a := Test{
 param1: struct{ param2 string }{param2: "test"},
}

或者

b := new(Test)

b.param1.param2 = "test"   

但今天遇到一種情況

匿名結(jié)構(gòu)體的成員上有tag聲明,形如

type Test struct {
  param1 struct {
    param2 string `json:"param2"`
  }
}

這時(shí)使用第一種初始化方式,始終報(bào)錯(cuò),說(shuō)類型不匹配,查了很久,偶然情況下去掉了結(jié)構(gòu)體定義中的tag聲明,居然不報(bào)錯(cuò)了,這時(shí)反應(yīng)過(guò)來(lái),使用第一種初始化方式,必須保證跟定義完全一樣,包括tag聲明等

a := Test{
 param1: struct{ param2 string `json:"param2"` }{param2: "test"},
}

這樣就沒(méi)問(wèn)題了~

最后覺(jué)得如果遇到這種匿名結(jié)構(gòu)體,還是使用第二種初始化方式簡(jiǎn)潔方便。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang中Gin框架的使用入門教程

    Golang中Gin框架的使用入門教程

    這篇文章主要為大家詳細(xì)介紹了Golang中Gin框架的使用教程,文中通過(guò)簡(jiǎn)單的示例為大家講解了Gin框架的安裝與使用,感興趣的小伙伴開(kāi)業(yè)跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • Golang為什么占用那么多的虛擬內(nèi)存原理解析

    Golang為什么占用那么多的虛擬內(nèi)存原理解析

    這篇文章主要介紹了Golang為什么占用那么多的虛擬內(nèi)存原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 深入了解Golang中占位符的使用

    深入了解Golang中占位符的使用

    在寫?golang?的時(shí)候,也是有對(duì)應(yīng)的格式控制符,也叫做占位符,寫這個(gè)占位符,需要有對(duì)應(yīng)的數(shù)據(jù)與之對(duì)應(yīng),不能瞎搞。本文就來(lái)和大家聊聊Golang中占位符的使用,希望對(duì)大家有所幫助
    2023-03-03
  • Golang的鎖機(jī)制使用及說(shuō)明

    Golang的鎖機(jī)制使用及說(shuō)明

    這篇文章主要介紹了Golang的鎖機(jī)制使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Go設(shè)計(jì)模式之享元模式講解和代碼示例

    Go設(shè)計(jì)模式之享元模式講解和代碼示例

    享元是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許你在消耗少量?jī)?nèi)存的情況下支持大量對(duì)象,模式通過(guò)共享多個(gè)對(duì)象的部分狀態(tài)來(lái)實(shí)現(xiàn)上述功能,換句話來(lái)說(shuō),享元會(huì)將不同對(duì)象的相同數(shù)據(jù)進(jìn)行緩存以節(jié)省內(nèi)存,本文就將通過(guò)代碼示例給大家詳細(xì)介紹一下享元模式
    2023-06-06
  • Go 協(xié)程超時(shí)控制的實(shí)現(xiàn)

    Go 協(xié)程超時(shí)控制的實(shí)現(xiàn)

    本文主要介紹了Go 協(xié)程超時(shí)控制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Golang實(shí)踐之Error創(chuàng)建和處理詳解

    Golang實(shí)踐之Error創(chuàng)建和處理詳解

    在 C#、Java 等語(yǔ)言中常常使用 try...catch的方式來(lái)捕獲異常,但是在Golang 對(duì)于錯(cuò)誤處理有不同的方式,像網(wǎng)上也有很多對(duì) error 處理的最佳實(shí)踐的文章,其中很多其實(shí)就是對(duì) error 的統(tǒng)一封裝,使用規(guī)范進(jìn)行約束,本文主要是記錄自己對(duì)處理 Error 的一些認(rèn)識(shí)和學(xué)習(xí)
    2023-09-09
  • 重學(xué)Go語(yǔ)言之錯(cuò)誤處理與異常機(jī)制詳解

    重學(xué)Go語(yǔ)言之錯(cuò)誤處理與異常機(jī)制詳解

    Go語(yǔ)言的開(kāi)發(fā)者顯然覺(jué)得?try-catch被濫用了,因此?Go不支持使用?try-catch語(yǔ)句捕獲異常處理,那么,Go語(yǔ)言是如何定義和處理程序的異常呢,下面我們就來(lái)看看吧
    2023-08-08
  • Go工具鏈之代碼測(cè)試神器go?test詳解

    Go工具鏈之代碼測(cè)試神器go?test詳解

    這篇文章主要給大家介紹Go?工具鏈go?test,go?test?是?Go?工具鏈中的一個(gè)命令,用于編譯和運(yùn)行按照要求編寫的?Golang?測(cè)試代碼,并生成測(cè)試報(bào)告,感興趣的同學(xué)跟著小編一起來(lái)看看本文吧
    2023-07-07
  • Go語(yǔ)言中的變量聲明和賦值

    Go語(yǔ)言中的變量聲明和賦值

    這篇文章主要介紹了Go語(yǔ)言中的變量聲明和賦值的方法,十分的細(xì)致全面,有需要的小伙伴可以參考下。
    2015-04-04

最新評(píng)論

裕民县| 宜良县| 彰武县| 曲阳县| 河池市| 巩义市| 宜宾县| 西吉县| 南陵县| 育儿| 盖州市| 两当县| 西乌珠穆沁旗| 长春市| 永泰县| 鹤壁市| 元朗区| 伊宁县| 两当县| 梅州市| 枣阳市| 潍坊市| 洛南县| 从化市| 五莲县| 乌兰察布市| 陇南市| 兴和县| 易门县| 荆州市| 田林县| 伽师县| 团风县| 阿拉善左旗| 渝北区| 黄浦区| 万载县| 旅游| 舒兰市| 仙游县| 长垣县|