第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 地圖上的結(jié)構(gòu)指針字段

Golang 地圖上的結(jié)構(gòu)指針字段

Go
猛跑小豬 2022-12-19 21:14:49
我想在映射中包含不同的結(jié)構(gòu)指針字段,如下所示。(當(dāng)然下面的代碼不起作用)type StructA struct {}type StructB struct {    }mymap := map[string]*struct{}{    "StructA": StructA,    "StructB": StructB,}
查看完整描述

1 回答

?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊

正如@icza 所說,地圖的元素類型必須是特定類型。但這可能是一個可以存儲不同類型對象的接口。類型any(的別名interface{}在某些方面類似于指針(雖然它也存儲類型信息),所以你可以這樣做:


mymap := map[string]inteface{}{

    "StructA": StructA{},

    "StructB": StructB{},

}

為了更安全一點(diǎn),您可以將可以添加到映射的類型限制為僅兩個結(jié)構(gòu)。為此,您需要一個接口來指定兩種結(jié)構(gòu)類型都實現(xiàn)的函數(shù)。


type (

    Common interface{ ImplementsCommon() }

    A      struct{}

    B      struct{}

)


func (A) ImplementsCommon() {}

func (B) ImplementsCommon() {}


    mymap := map[string]Common{

        "A": A{},

        "B": B{},

    }

在Go Playground上試試



查看完整回答
反對 回復(fù) 2022-12-19
  • 1 回答
  • 0 關(guān)注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號