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

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

golang:按排序的鍵順序遍歷任意地圖

golang:按排序的鍵順序遍歷任意地圖

Go
九州編程 2021-06-04 14:48:37
簡而言之:無論地圖的類型如何,如何按排序的鍵順序遍歷地圖?我發(fā)現(xiàn)了一些相關(guān)的問題,最接近的一個表明不依賴reflect模塊就無法完成。這種理解是否正確?考慮這個 Go 代碼,它按照鍵的排序順序遍歷兩個不同類型的映射:mapOne := map[int]string {    1: "a",    2: "b",    3: "c",}keysOne := make([]int, 0, len(mapOne))for key, _ := range mapOne {    keysOne = append(keysOne, key)}sort.Ints(keysOne)for _, key := range keysOne {    value := mapOne[key]    fmt.Println(key, value)}mapTwo := map[string]int {    "a": 1,    "b": 2,    "c": 3,}keysTwo := make([]string, 0, len(mapTwo))for key, _ := range mapTwo {    keysTwo = append(keysTwo, key)}sort.Strings(keysTwo)for _, key := range keysTwo {    value := mapTwo[key]    fmt.Println(key, value)}對于兩種不同的地圖類型,提取鍵然后對其進(jìn)行排序的邏輯是重復(fù)的。有什么辦法可以解決這個邏輯并避免重復(fù)?我在嘗試編寫接口以提供SortedKeys方法時陷入困境。特別是,的返回類型SortedKeys取決于地圖的類型,我不知道如何在 Go 中表達(dá)它。
查看完整描述

1 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊

我認(rèn)為告訴你需要的人reflect是對的;不過這可能有點(diǎn)矯枉過正。我認(rèn)為這里的重復(fù)是可以接受的。

(或者,您可以實(shí)現(xiàn)自己的映射,該映射使用某種類型的鍵接口,但您最終仍需要創(chuàng)建滿足每個底層鍵類型接口的類型)


查看完整回答
反對 回復(fù) 2021-06-07
  • 1 回答
  • 0 關(guān)注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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