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

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

通用地圖值

通用地圖值

Go
一只萌萌小番薯 2021-08-16 17:58:20
當我想以類似的方式使用地圖的鍵但地圖中的值不同時,我遇到過幾次這個問題。我以為我可以編寫一個函數(shù),將我想要的鍵類型與 interface{} 作為值類型,但它不起作用。func main() {    mapOne := map[string]int    mapTwo := map[string]double    mapThree := map[string]SomeStruct    useKeys(mapOne)}func useKeys(m map[string]interface{}) {    //something with keys here}不知道是否有一種優(yōu)雅的方式來做到這一點,我只是覺得腰部飽滿,為不同的價值觀重寫了簡單的東西。
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

盡管 go 中的地圖和切片本身是泛型的,但它們不是協(xié)變的(也不可能是協(xié)變的,因為接口不是泛型)。這是使用沒有泛型的語言的一部分,您將不得不重復一些事情。


如果你真的只需要獲取任何舊地圖的鍵,你可以使用反射來做到這一點:


func useKeys(m interface{}) {

    v := reflect.ValueOf(m)

    if v.Kind() != reflect.Map {

        fmt.Println("not a map!")

        return

    }


    keys := v.MapKeys()

    fmt.Println(keys)

}


查看完整回答
反對 回復 2021-08-16
  • 2 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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