首頁 >後端開發 >Golang >如何使用 One-Liner 優雅地將物件數組映射到 Go 中的新數組?

如何使用 One-Liner 優雅地將物件數組映射到 Go 中的新數組?

DDD
DDD原創
2024-12-26 18:34:10615瀏覽

How Can I Elegantly Map an Array of Objects to a New Array in Go Using a One-Liner?

在Go 中映射物件陣列:探索Eloquent 解決方案

在Go 中,將物件陣列映射到新陣列需要一種與靈活性相符的優雅方法以及其他語言中類似操作的簡單性。 Go 中的陣列是不可變的,與 Node.js 不同,Node.js 中可以使用映射函數來轉換每個元素。

尋求單行解決方案:

問題尋求一種優雅的單行解決方案,將對象數組映射到相應水果的數組中,模仿JavaScript 的映射函數的行為。雖然可以選擇範圍循環,但首選單行解決方案。

Map 函數簡介:

Go 沒有內建的陣列 Map 方法,它允許建立通用的頂層函數。 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
}

應用Map 函數:

使用Map 函數,所需的單行程式碼可以寫如下:

fruits := Map(list, func(el Element) string { return el.Fruit })

結論:

Map函數提供了一種優雅而有效的方法將物件陣列映射到新的轉換值陣列。雖然 Go 的陣列可能無法提供與其他語言相同的靈活性,但像 Map 這樣的通用頂級函數可以為資料轉換任務提供富有表現力和慣用的解決方案。

以上是如何使用 One-Liner 優雅地將物件數組映射到 Go 中的新數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn