> 백엔드 개발 > Golang > Go 목록의 모든 요소에 함수를 효율적으로 적용하려면 어떻게 해야 합니까?

Go 목록의 모든 요소에 함수를 효율적으로 적용하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-13 04:39:02
원래의
198명이 탐색했습니다.

How Can I Apply a Function to Every Element in a Go List Efficiently?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿