vararg는 오버로딩 해소에도 영향을 미친다. 다른 요소가 모두 같다면 vararg 파라미터가 있는 함수는 동일한 타입의 파라미터 수가 고정돼 있는 함수보다 덜 구체적인 함수로 간주된다. 예를 들어 다음과 같이 인자가 세 개 있을 때 컴파일러는 2번 함수를 선택한다.
fun printSorted(vararg items: Int) { } // 1 fun printSorted(a: Int, b: Int, c: Int) { } // 2 fun main() { printSorted(1, 2, 3) // 2번 함수가 가변 인자 함수가 아니므로 2를 선택 printSorted(1, 2) // 적용할 수 있는 함수가 1번밖에 없으므로 1을 선택 }