亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Golang 地圖上的結構指針字段

Golang 地圖上的結構指針字段

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

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

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


mymap := map[string]inteface{}{

    "StructA": StructA{},

    "StructB": StructB{},

}

為了更安全一點,您可以將可以添加到映射的類型限制為僅兩個結構。為此,您需要一個接口來指定兩種結構類型都實現的函數。


type (

    Common interface{ ImplementsCommon() }

    A      struct{}

    B      struct{}

)


func (A) ImplementsCommon() {}

func (B) ImplementsCommon() {}


    mymap := map[string]Common{

        "A": A{},

        "B": B{},

    }

在Go Playground上試試



查看完整回答
反對 回復 2022-12-19
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號