Go 목록에 효율적인 함수 적용
Go 목록의 모든 요소에 함수를 적용하고 결과를 새 목록에 저장하려면 에서 전통적인 접근 방식은 입력 목록을 반복하고 결과를 출력 목록에 추가하는 것입니다. 그러나 Go 1.18 이상에서는 더 간결하고 일반적인 솔루션인 Map 함수가 있습니다.
Map 함수는 T 유형의 요소 목록과 각 요소를 유형의 값으로 변환하는 함수를 사용합니다. V. 입력 목록의 각 요소에 함수를 적용한 결과가 포함된 []V 유형의 새 목록을 반환합니다.
예는 다음과 같습니다.
func Map[T, V any](ts []T, fn func(T) V) []V { result := make([]V, len(ts)) for i, t := range ts { result[i] = fn(t) } return result } // Usage example input := []int{4, 5, 3} outputInts := Map(input, func(item int) int { return item + 1 }) outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })
이 예에서는 입력은 정수 목록입니다. 두 가지 다른 함수로 Map 함수를 적용하여 증가된 정수 목록(outputInts)과 형식화된 문자열 목록(outputStrings)을 생성할 수 있습니다. 이를 통해 명시적인 루프가 필요하지 않으며 기존 접근 방식에 대한 간결하고 효율적인 대안을 제공합니다.
위 내용은 Go 목록의 모든 요소에 함수를 효율적으로 적용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!