본문 바로가기
개발/Kotlin

[코틀린] 코틀린 함수

by 윤호 2021. 12. 10.

코틀린 함수의 기본 구조

fun 함수명([변수명: 타입], ...): [반환 타입]{
		...
}

fun sum(a: Int, b: Int): Int {
    var sum = a + b
    return sum
}

fun sum(a: Int, b: Int): Int = a + b

fun sum(a: Int, b: Int) = a + b

 

함수 반환값 생략

fun printSum(a: Int, b: Int): Unit{
		println("sum of $a and $b is ${a+b}")
}

fun printSum(a: Int, b: Int) {
		println("sum of $a and $b is ${a+b}")
}

반환값이 없을 경우 코틀린의 특수한 자료형인 Unit을 반환값으로 사용.

반환값의 타입이 없을 경우 코틀린이 자동으로 Unit이라고 추론함.

 

함수 매개 변수에 기본값 지정하기

fun main() {
    defaultArgs()        // 100 + 200
    defaultArgs(200)  // 200 + 200
}

fun defaultArgs(x: Int = 100, y: Int = 200) {
    println(x + y)
}

 

매개변수 이름과 함께 함수 호출하기

fun main() {
    namedParam(x = 200, z = 100) // y는 기본값
    //namedParam(x = 300)  // Error - z에 기본값도 없고 인자도 없으므로.
    namedParam(z = 150)  // Ok - x와 y는 기본값으로 지정됨
}

fun namedParam(x: Int = 100, y: Int = 200, z: Int) {
    println(x + y + z)
}

 

매개변수의 개수가 고정되지 않은 함수 사용하기 - vararg

fun main() {
    normalVarargs(1, 2, 3, 4) // 4개의 인자 구성
    normalVarargs(4, 5, 6)    // 3개의 인자 구성
}

fun normalVarargs(vararg counts: Int): Unit {
    for (num in counts) {
        print("$num ")
    }
    print("\\n")
}

 


reference : Doit! 코틀린 프로그래밍

댓글