[go] Sort 패키지의 비교 함수의 규칙

비교 함수는 두 인덱스 ij 의 요소를 받아서 다음 규칙을 따라야 합니다:

  1. 만약 슬라이스 내의 i 번째 값이 j 번째 값보다 작다면, i 번째 값 앞에 j 번째 값이 있어야 합니다.
  2. 만약 슬라이스 내의 i 번째 값이 j 번째 값과 같다면, i 번째 값과 j 번째 값의 순서는 변하지 않아야 합니다.

비교 함수는 이러한 규칙을 지키지 않으면 정렬이 올바르게 이루어지지 않을 수 있습니다.

func lessFunc(i, j int) bool {
    return data[i] < data[j]
}

sort.Slice(data, lessFunc)

만일 lessFunc가 위의 규칙을 따른다면 sort.Slice 함수는 이 비교 함수를 이용하여 슬라이스를 정렬할 것입니다.