首頁 >後端開發 >Golang >如何使用泛型函數有效地映射 Go 中的物件數組?

如何使用泛型函數有效地映射 Go 中的物件數組?

Barbara Streisand
Barbara Streisand原創
2024-12-28 18:24:20595瀏覽

How Can I Efficiently Map Arrays of Objects in Go Using a Generic Function?

使用通用函數映射物件數組

在Go 中,對數組進行操作的函數由於其不靈活的性質和相關的開銷而具有一定的限制與複製參數。本文探討了一種使用通用頂層函數以簡潔方式映射物件陣列的方法。

使用通用函數的單行解決方案

在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
}

函數採用T 類型的陣列和採用參數的函數f類型為T 並傳回類型為U 的值。它傳回包含映射值的類型為 U 的陣列。

用法

要映射物件數組,可以使用Map 函數,例如this:

names := []string{"Alice", "Bob", "Carol"}
fmt.Println(Map(names, utf8.RuneCountInString))

此程式碼將列印下列輸出至stdout:

[5 3 5]

注意事項

Map函數基於循環,與在陣列上操作的本機函數相比,可能會帶來開銷。權衡簡潔語法的好處和潛在的效能影響非常重要。

以上是如何使用泛型函數有效地映射 Go 中的物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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