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

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

如何漂亮地打印同步地圖的內(nèi)容

如何漂亮地打印同步地圖的內(nèi)容

Go
千萬(wàn)里不及你 2023-08-07 14:35:36
我想在 Go 中漂亮地打印同步映射的內(nèi)容。我有一個(gè)sync.Mapdata我想打印它的內(nèi)容。要查看特定鍵的值,SiteData我可以運(yùn)行以下代碼。var data sync.MapsiteData := map[string]string{"Name": "StackOverflow"}data.Store("SiteData", siteData)temp, _ := data.Load("SiteData") b, _ := json.MarshalIndent(temp, "", " ")fmt.Println(string(b))但我希望立即打印整個(gè)地圖。這是因?yàn)閐ata可以有很多鑰匙,我想一次打印它們。運(yùn)行以下代碼不起作用并打印{}var data sync.MapsiteData := map[string]string{"Name": "StackOverflow"}data.Store("SiteData", siteData)b, _ := json.MarshalIndent(data, "", " ")fmt.Println(string(b))
查看完整描述

2 回答

?
慕的地6264312

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

的字段(內(nèi)部)sync.Map不會(huì)導(dǎo)出,因此無(wú)法訪問,更重要的是,如果不同步則無(wú)法訪問。所以你不能只打印sync.Map.

您可以做的是迭代 的所有條目sync.Map,從中構(gòu)建一個(gè)“普通”地圖,然后顯示它。請(qǐng)注意,“普通”映射必須具有string鍵類型(interface{}該包不支持具有鍵類型的映射encoding/json)。我們可以簡(jiǎn)單地將interface{}密鑰轉(zhuǎn)換為string使用fmt.Sprint().?要獲取所有條目,您可以使用Map.Range().

例如:


var data sync.Map

data.Store("SiteData", map[string]string{

? ? "Name": "StackOverflow",

? ? "Url":? "https://so.com",

})

data.Store("Else", "something else")


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

data.Range(func(key, value interface{}) bool {

? ? m[fmt.Sprint(key)] = value

? ? return true

})


b, err := json.MarshalIndent(m, "", " ")

if err != nil {

? ? panic(err)

}

fmt.Println(string(b))

這將輸出(在Go Playground上嘗試):


{

?"Else": "something else",

?"SiteData": {

? "Name": "StackOverflow",

? "Url": "https://so.com"

?}

}


查看完整回答
反對(duì) 回復(fù) 2023-08-07
?
呼啦一陣風(fēng)

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

這是一個(gè)簡(jiǎn)單的 util 函數(shù)(您可以根據(jù)需要對(duì)其進(jìn)行修改):


// print map's key/value, with index (not stable),

func PrintSyncMap(m sync.Map) {

    // print map,

    fmt.Println("map content:")

    i := 0

    m.Range(func(key, value interface{}) bool {

        fmt.Printf("\t[%d] key: %v, value: %v\n", i, key, value)

        i++

        return true

    })

}

輸出示例:


map content:

        [0] key: Qian, value: class 2

        [1] key: Zhao, value: class 1

        [2] key: Li, value: class 4

尖端:


指數(shù)不穩(wěn)定。(又名。打印項(xiàng)目的順序可能會(huì)在多次調(diào)用中發(fā)生變化。)


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

添加回答

舉報(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)