같은 스코프 안에서 같은 이름의 함수를 여러개 만들 수 있는 기능
-> 서로 다른 함수로 동작 됨
-> 파라미터의 이름만 다르고 자료형과 개수가 같게 되면 오버로딩을 할 수 없음
// 자료형을 구분하여 함수가 매칭되어 실행됨
fun main() {
read(7)
read("감사합니다")
}
fun read(x: Int) {
println("숫자 $x 입니다")
}
fun read(x: String) {
println(x)
}
숫자 7 입니다
감사합니다
같은 자료형을 개수에 상관없이 패러미터로 받고 싶을 때 사용
fun main() {
sum(1,2,3,4)
}
fun sum(vararg numbers: Int) {
var sum = 0
for(n in numbers)
{
sum += n
}
print(sum)
}
마치 연산자처럼 쓸 수 있다.
fun main() {
println(6 mutiply 4)
println(6.mutiply(4))
}
infix fun Int.mutiply(x: Int): Int = this * x