프로그래밍 언어/Kotlin

[Kotlin] 코틀린 함수

happy_life 2022. 10. 8. 21:05

이번 포스팅에서는 코틀린 함수의 특징에 대해 알아보겠습니다.

 

코틀린 함수 특징

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