」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中將值附加到映射內的陣列?

如何在 Go 中將值附加到映射內的陣列?

發佈於2024-11-21
瀏覽:651

How to Append Values to Arrays Inside Maps in Go?

將值附加到Go 中映射內的數組

在Go 中使用映射時,操作這些映射中的數組可能具有挑戰性。本文提供了一個解決方案,解決將值附加到儲存在映射內的陣列的問題。

若要瞭解該問題,請考慮以下程式碼:

type Example struct {
    Id []int
    Name []string
}
var MyMap map[string]Example

在這裡,MyMap 是將字串對應到Example 結構體實例的對應。範例結構包含陣列 Id 和 Name。目標是將值附加到這些陣列。

執行此操作的初始嘗試通常涉及呼叫範例結構上的方法並傳遞指標接收器以存取和修改陣列。但是,直接將 Oferty.AppendExample(1, "SomeText") 的結果指派給 MyMap["key1"] 將無法運作,因為映射儲存的是 Example 結構的副本,而不是結構本身。

解決方案在於修改程式碼如下:

package main

import "fmt"

type Example struct {
    Id []int
    Name []string
}

func (data *Example) AppendOffer(id int, name string) {
    data.Id = append(data.Id, id)
    data.Name = append(data.Name, name)
}

var MyMap map[string]*Example

func main() {
    obj := &Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}

透過建立Example結構體的實例並在映射中儲存對其的參考(使用指標類型),我們可以直接修改陣列。 AppendOffer 方法對指向 Example 結構的指標進行操作,允許我們將值附加到陣列。

此解決方案有效地將值附加到儲存在 MyMap 中的 Example 結構內的陣列。它提供了一種清晰簡潔的方法來管理 Go 中映射內的陣列。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3