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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang 迭代嵌套映射并將鍵更改為標(biāo)題大小寫(xiě)

Golang 迭代嵌套映射并將鍵更改為標(biāo)題大小寫(xiě)

Go
森欄 2023-07-31 15:17:15
我有一個(gè)帶有l(wèi)ower大小寫(xiě)字符的嵌套地圖。我想做的是迭代地圖并將所有鍵轉(zhuǎn)換為Title大小寫(xiě)。我嘗試了下面的代碼,但它給了我奇怪的結(jié)果。有人可以指導(dǎo)我哪里出錯(cuò)了嗎?package mainimport (    "fmt"    "strings")func main() {    a := make(map[string]interface{})    a["start"] = map[string]interface{}{        "hello": 2,        "world": 3,        "here": map[string]interface{}{            "baam": 123,            "boom": "dsd",        },    }    printMap(a)    fmt.Println(a)}func printMap(a map[string]interface{}) {    for k, v := range a {        switch v.(type) {        case map[string]interface{}:            printMap(v.(map[string]interface{}))        default:            title := strings.Title(k)            a[title] = a[k]            delete(a, k)        }    }}
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

問(wèn)題是您正在迭代地圖并同時(shí)更改它,但期望迭代不會(huì)看到您所做的事情。代碼的相關(guān)部分是:


for k, v := range a {

    title := strings.Title(k)

    a[title] = a[k]

    delete(a, k)

}

因此,如果映射有{"hello":2, "world":3},并假設(shè)鍵按該順序迭代。第一次迭代后,您現(xiàn)在擁有:


{"world":3, "Hello":2}

下一次迭代:


{"World":3, "Hello":2}

下一次迭代查看“Hello”,它已經(jīng)大寫(xiě),因此您再次將其大寫(xiě),然后刪除它,最終得到:


{"World":3}

您可能想要生成一個(gè)新的映射,而不是覆蓋現(xiàn)有的映射,然后返回該映射,以便調(diào)用者可以使用它。


func main() {

    a := make(map[string]interface{})


    a["start"] = map[string]interface{}{

        "hello": 2,

        "world": 3,

        "here": map[string]interface{}{

            "baam": 123,

            "boom": "dsd",

        },

    }


    a=printMap(a)


    fmt.Println(a)

}


func printMap(a map[string]interface{}) map[string]interface{} {

    newMap:=map[string]interface{}{}

    for k, v := range a {


        switch v.(type) {

        case map[string]interface{}:

            newMap[k]=printMap(v.(map[string]interface{}))

        default:

            title := strings.Title(k)

            newMap[title] = a[k]

        }

    }

    return newMap

}


查看完整回答
反對(duì) 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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