>백엔드 개발 >Golang >One-Liner를 사용하여 Go에서 객체 배열을 새 배열에 우아하게 매핑하려면 어떻게 해야 합니까?

One-Liner를 사용하여 Go에서 객체 배열을 새 배열에 우아하게 매핑하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-26 18:34:10612검색

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

Go에서 객체 배열 매핑: Eloquent 솔루션 탐색

Go에서 객체 배열을 새 배열로 매핑하려면 유연성에 맞는 우아한 접근 방식이 필요합니다. 다른 언어에서도 유사한 작업이 간편합니다. Map 함수를 사용하여 각 요소를 변환할 수 있는 Node.js와 달리 Go의 배열은 변경할 수 없습니다.

원 라이너 솔루션 찾기:

질문은 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으로 문의하세요.