Kotlin 함수 오버로딩, 지역 함수
Kotlin 함수 오버로딩
함수 오버로딩
fun main() {
test1()
test1(100)
test1(111.11)
test1(100, 200)
}
fun test1() {
println("매개변수 없음")
}
fun test1(a1:Int) {
println("매개변수 Int")
}
fun test1(a1:Double) {
println("매개변수 Double")
}
fun test1(a1:Int, a2:Int) {
println("매개변수 두개")
}
같은 이름의 함수여도, 매개변수의 타입, 매개변수의 갯수의 차이로 함수 오버라이딩이 가능하다.
지역 함수
함수내에 함수를 지정할 수 있으며, 해당 함수내에서만 사용이 가능하다.
fun main() {
test1()
}
fun test1() {
println("test1 호출")
fun test2() {
println("test2 호출")
}
test2()
}
함수 내 지역 함수를 사용할 경우, 지역 함수의 선언이, 호출부보다 하위에 위치해야 한다.
fun main() {
test1()
}
fun test1() {
println("test1 호출")
test2()
fun test2() {
println("test2 호출")
}
}
지역 함수의 선언 부보다, 호출 부가 위에 있을 경우, 하위 지역 함수를 찾을 수 없다는 오류가 발생하게 된다.
Kotlin: Unresolved reference: test2
지역함수를 선언한 함수 밖에서 호출 할 경우도 역시 동일한 오류가 발생한다.
fun main() {
test1()
test2() // 오류 발생 Kotlin: Unresolved reference: test2
}
fun test1() {
println("test1 호출")
fun test2() {
println("test2 호출")
}
}
댓글
댓글 쓰기