亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么我在從只有 3 個實體的地圖創建的數組中得到 6 個條目?

為什么我在從只有 3 個實體的地圖創建的數組中得到 6 個條目?

Go
精慕HU 2023-08-07 11:08:52
我對 Go 中的地圖類型的理解有一個看似簡單的問題。如果我創建一個簡單的地圖,例如var thisMap = map[string]string {  "8f14e45fceea167a5a36dedd4bea2543": "Charming",  "1679091c5a880faf6fb5e6087eb1b2dc": "Citi",  "e4da3b7fbbce2345d7772b0674a318d5": "Chase",}將鍵填充到數組中keys := make([]string, len(supportedCards))for k := range supportedCards {    keys = append(keys, k)}然后嘗試將這些鍵連接成一個逗號分隔的值,我可以將其附加到任何字符串fmt.Println(strings.Join(keys,","))我期望結果是8f14e45fceea167a5a36dedd4bea2543,1679091c5a880faf6fb5e6087eb1b2dc,e4da3b7fbbce2345d7772b0674a318d5但我真正看到的是,,,8f14e45fceea167a5a36dedd4bea2543,1679091c5a880faf6fb5e6087eb1b2dc,e4da3b7fbbce2345d7772b0674a318d5為什么迭代映射會創建 6 個條目而不是 3 個?https://play.golang.org/p/Ou67K1Kfvsf
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

keys := make([]string, len(supportedCards))

您創建一個[]string包含三個空元素的 。您可以使用它們的索引來分配它們。

當您稍后附加它時,新條目將添加到末尾,生成長度為 6 的結果,其中前三個為空。


查看完整回答
反對 回復 2023-08-07
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

除了@xarantolus的答案之外,您可以通過以下方式保持 for-range 循環不變,而不是使用索引:

keys := make([]string, 0, len(supportedCards))

第三個參數是幻燈片的容量。參考: https: //tour.golang.org/moretypes/13


查看完整回答
反對 回復 2023-08-07
  • 2 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號