이번 포스팅에서는 코틀린 함수의 특징에 대해 알아보겠습니다.
코틀린 함수 특징
1. 파라미터의 타입은 항상 지정해야 합니다.
fun circle(radius: Double): Double // (O)
fun circle(radius): Double // (X)
2. 반환값이 없는 경우에만 반환값의 타입을 생략할 수 있습니다.
이는 자바의 void와 같습니다. 참고로 Kotlin에서는 Unit이라는 예약어를 사용합니다.(그 Unit이라는 타입을 생략가능)
3. 함수 파라미터의 값은 val 타입이라 값이 바뀌는 것이 허용되지 않습니다.
4. 코드를 = 로 수정할 수 있습니다.
참고로 반환값 타입 유추가 가능한 경우 반환 타입을 생략해줄 수 있습니다.
fun circle(radius: Double): Double {
return (radius * radius) * PI
}
fun circle(radius: Double) = (radius * radius) * PI
5. 함수의 호출
함수는 아래와 같은 3가지 형태가 모두 가능하며 모두 같은 의미입니다.
fun rectangle(width: Int, height: Int){
}
fun main () {
rectangle(3, 4)
rectangle(width = 3, height = 4)
rectangle(height = 3, width = 3)
}
6. 함수의 오버로딩
같은 이름의 메소드 또는 생성자를 매개변수의 개수나 타입을 다르게 지정함으로써 2개 이상 정의하는 것을 의미합니다.
fun readInt() = readLine()!!.toInt()
fun readInt(radix: Int) = readLine()!!.toInt(radix)
해소 규칙은 아래와 같습니다.
1. 파라미터의 개수와 타입을 기준으로 호출할 수 있는 모든 함수를 찾습니다.
2. 덜 구체적인 함수를 제외시킵니다. 이 과정을 하나의 함수가 남을 때까지 반복합니다.
3. 하나가 남으면 해당 함수를 호출합니다. 두 개 이상이남으면 컴파일 에러를 발생시킵니다.
7. 함수의 디폴트 파라미터
값이 없는 경우 특정 값을 default로 설정해줄 수 있습니다.
fun readInt(radix: Int = 10) = readLine()!!.toInt(radix)
8. 함수의 가시성
public 함수
프로젝트 어디서나 함수 호출 가능합니다.
internal 함수
함께 컴파일 되는 묘듈 안에서만 가능합니다.
private 함수
같은 파일안에서만 가능합니다.
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
[Kotlin] null 정리 (0) | 2022.10.11 |
---|---|
[Kotlin] 코틀린 클래스, 생성자 (0) | 2022.10.09 |
[Kotlin] 코틀린 문자열과 배열 (1) | 2022.10.08 |
[Kotlin] 코틀린 기본 타입 (1) | 2022.10.07 |
[Kotlin] 코틀린 언어 특징 (0) | 2022.10.06 |