오버로딩이 왜 유용할까? 오버로딩을 사용하면 ‘같은 주제를 다르게 변경한다’는 개념을 (강제로 서로 다른 함수 이름을 써야 할 경우보다) 더 명확하게 표현할 수 있다. 덧셈 함수가 필요하다고 해보자.
Overloading/OverloadingAdd.kt
package overloading
import atomictest.eq
fun addInt(i: Int, j: Int) = i + j
fun addDouble(i: Double, j: Double) = i + j
fun add(i: Int, j: Int) = i + j
fun add(i: Double, j: Double) = i + j
fun main() {
addInt(5, 6) eq add(5, 6)
addDouble(56.23, 44.77) eq
add(56.23, 44.77)
}