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

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

映射的鍵作為指向結(jié)構(gòu)的指針?(用例)

映射的鍵作為指向結(jié)構(gòu)的指針?(用例)

Go
守著星空守著你 2022-01-10 14:30:59
給定一個(gè)結(jié)構(gòu):type Foo struct {     Bar int     }選項(xiàng)1,地圖的關(guān)鍵:struct valuemap[Foo]bool選項(xiàng)2,地圖的關(guān)鍵:pointer to structmap[*Foo]bool在某些情況下我必須選擇選項(xiàng) 2嗎?IE:內(nèi)存效率?巨大的結(jié)構(gòu)價(jià)值?一般來說,將 map 的鍵設(shè)為 的合理用例有哪些pointer to struct?
查看完整描述

1 回答

?
30秒到達(dá)戰(zhàn)場

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

對(duì)于這種特定情況,指針不會(huì)真正起作用,因?yàn)槔纾?/p>


func main() {

    m1, m2 := map[Vertex]int{}, map[*Vertex]int{}

    a, b := Vertex{10}, Vertex{10}

    m1[a], m2[&a] = 10, 10


    fmt.Println(m1[a], m1[b], m1[a] == m1[b])

    fmt.Println(m2[&a], m2[&b], m2[&a] == m2[&b])

    fmt.Printf("%p %p", &a, &b)

}


// 編輯問題后編輯


使用指針的唯一原因是結(jié)構(gòu)的內(nèi)容不可比較(又名切片或映射等),或者如果按值使用它太大會(huì)導(dǎo)致性能問題。


恕我直言,您當(dāng)前的情況應(yīng)該使用值而不是指針。


查看完整回答
反對(duì) 回復(fù) 2022-01-10
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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