首頁 > 後端開發 > Golang > 如何在 Go 中映射物件數組?

如何在 Go 中映射物件數組?

Linda Hamilton
發布: 2025-01-03 08:06:39
原創
732 人瀏覽過

How Can I Map Arrays of Objects in Go?

Go 中的物件陣列映射

在 Node.js 中,map() 函數可讓您透過轉換原始陣列的每個元素來建立新陣列。在 Go 中,陣列不如切片靈活,且不支援方法。

但是,您可以實作一個通用的 Map 函數,可用於將物件陣列轉換為其所需值的陣列。

通用地圖函數

func Map[T, U any](ts []T, f func(T) U) []U {
    us := make([]U, len(ts))
    for i := range ts {
        us[i] = f(ts[i])
    }
    return us
}
登入後複製

用法

fruits := []struct{ fruit string }{
    {fruit: "apple"},
    {fruit: "banana"},
    {fruit: "cherry"},
}

fruitNames := Map(fruits, func(fruit struct{ fruit string }) string { return fruit.fruit })

fmt.Println(fruitNames) // Outputs: [apple banana cherry]
登入後複製

注意事項

雖然使用單行Map 函數很方便,但重要的是要考慮它的限制:

  • 隱藏成本:Map 函數分配一個新的切片並執行 O(n) 迭代,因此它可能並不總是最有效的選擇。
  • 錯誤處理: Map 函數不會處理可能發生的錯誤轉換元素。如果可能出現錯誤,則可能需要自訂循環。

儘管有這些考慮,Map 函數仍然可以為 Go 中的物件陣列映射提供輕量級且優雅的解決方案。

以上是如何在 Go 中映射物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板