[go] Sort 패키지를 이용한 사용자 정의 타입의 정렬

Go 언어에서는 사용자 정의 타입을 정렬할 때 sort 패키지를 활용할 수 있습니다. 본 블로그에서는 sort 패키지를 사용하여 사용자가 정의한 타입을 정렬하는 방법에 대해 알아보겠습니다.

사용자 정의 타입 정의하기

먼저, 사용자 정의 타입을 정의해야 합니다. 예를 들어, 문자열의 길이에 따라 정렬하는 ByLength라는 타입을 정의해보겠습니다.

type ByLength []string

여기서 ByLength[]string 타입을 가지는 사용자 정의 타입입니다.

Sort Interface 구현하기

다음으로, sort.Interface를 구현해야 합니다. 이를 통해 정렬 함수가 제대로 동작하도록 할 수 있습니다.

func (s ByLength) Len() int {
    return len(s)
}

func (s ByLength) Less(i, j int) bool {
    return len(s[i]) < len(s[j])
}

func (s ByLength) Swap(i, j int) {
    s[i], s[j] = s[j], s[i]
}

위의 코드에서 Len, Less, Swap 메서드를 구현하여 sort.Interface를 만족시켰습니다.

사용 예시

이제, ByLength 타입을 사용하여 문자열을 정렬해보겠습니다.

fruits := []string{"apple", "banana", "kiwi"}
sort.Sort(ByLength(fruits))
fmt.Println(fruits) // 출력: [kiwi apple banana]

ByLength 타입을 사용하여 문자열이 길이에 따라 정렬되었습니다.

이처럼, sort 패키지를 사용하여 사용자 정의 타입을 정렬할 수 있습니다.

더 자세한 내용은 Go 공식 문서를 참고하시기 바랍니다.

위의 예제 코드를 통해 사용자 정의 타입을 sort 패키지를 이용하여 정렬하는 방법에 대해 알아보았습니다.