[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
패키지를 이용하여 정렬하는 방법에 대해 알아보았습니다.