使用通用函數映射物件數組
在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中文網其他相關文章!