728x90
코틀린도 함수의 overloading 지원됨
: 같은 Scope 안에서 같은 이름의 함수를 여러개 만들 수 있는 것
ex)fun same (x: Int)
fun same (x: Int, text: String)
fun same (x: Int, y: Int)
- 다만 패러미터 이름만 같은 경우는 오버로딩 할 수 없다.
overloading 예시
- 패러미터의 형식에 맞게 자동으로 함수가 매칭되는 것을 확인 할 수 있다
fun main() {
read(7)
read("감사합니다")
}
fun read(x: Int) {
println("숫자 $x 입니다")
}
fun read(x: String) {
println(x)
}
디폴트 매개 변수 (default arguments)
- 별다른 패러미터가 없을떄도 기본값으로 동작하기 위해 사용
- 패러미터가 채워지지 않았을 경우 자동으로 채워지는 것을 확인 가능
fun main() {
deliveryItem("짬뽕")
deliveryItem("책",3)
deliveryItem("노트북",30,"학교")
}
fun deliveryItem(name: String, count: Int = 1, destination:String = "집") {
println("${name}, ${count}개를 ${destination}에 배달하였습니다")
}
명명된 인수 (named arguments)
- 이름과, 장소만 지정하고 갯수를 기본값으로 사용하고 싶을때 (중간에 있는 값만)
사용한다 - 순서에 상관없이 직접 패러미터의 값을 할당하는 기능
deliveryItem("선물", destination = "친구집")
variable number of arguments(vararg)
- 같은 자료형을 갯수에 상관없이 패러미터로 받고 싶을 때 사용하는 기능
- 갯수가 지정되지 않았기 때문에 다른 패러미터와 사용할 때는 맨 마지막위치 하는 것 주의
fun main() {
sum(1, 2, 3, 4)
}
fun sum(vararg numbers: Int) {
var sum = 0
for (n in numbers) {
sum += n
}
println(sum)
}
infix 함수
- 마치 연산자처럼 사용 할 수 있는 기능
fun main() {
//6 -> this , 5 -> x
println(6 multiply 4)
println(6.multiply(4))
}
//함수 이름을 infix 함수가 적용될 자료형 이름으로 지정
//적용할 클래스가 자기자신 이므로 클래스 이름은 쓰지 않는다
infix fun Int.multiply(x: Int): Int = this * x
728x90
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] Data Class와 Enum Class 설명 & 예제 (0) | 2021.02.15 |
---|---|
[Kotlin] 중첩 클래스와 내부 클래스 설명 & 예제 (0) | 2021.02.12 |
[Kotlin] null 값을 처리하는 방법, 동일여부 확인 설명 & 예제 (0) | 2021.02.11 |
[Kotlin] 문자열을 다루는 여러가지 방법 설명 & 예제 (0) | 2021.02.11 |
[Kotlin] 리스트(List) 설명 & 예제 (0) | 2021.02.09 |