[Kotlin]함수

한상욱·2023년 10월 26일

Kotlin문법

목록 보기
11/16
post-thumbnail

들어가며

이글은 Kotlin 문법 정리글입니다.

함수

이번에는 kotlin의 함수에 대해서 알아보겠습니다. 간단하게 예를 들 수 있도록 두 수를 입력받아서 합하는 함수를 만들어보겠습니다.

fun main() {
    println(sum(10, 20))
}

fun sum(num1 : Int, num2 : Int) : Int {
    return num1+num2
}

>> 30

위 처럼 함수의 이름 앞에 fun 키워드를 붙여줍니다. 입력 파라미터는 타입을 일반적인 타입 지정처럼 지정하시면 됩니다. 반환 타입은 함수에 맨 끝에 타입을 지정하면 완성입니다. 위의 함수는 스코프내의 코드가 한줄이기 때문에 다른 프로그래밍 언어들처럼 줄여서 사용할 수 있어요.

fun main() {
    println(sum(10, 20))
}

fun sum(num1 : Int, num2 : Int) : Int = num1+num2

>> 30

반환 타입도 사실 타입 추론이 가능하면 생략가능합니다.

오버로딩

오버로딩은 함수의 파라미터를 다르게 해서 여러 기능을 할 수 있도록 하는 기능입니다. 오버라이딩이랑 이름은 비슷하지만 전혀 달라요. 오버라이딩은 자식 클래스에서 부모 클래스의 함수를 가져와서 수행코드를 바꿔서 사용하는 것을 의미합니다.

잠시 여담이었고, 다른 프로그래밍에서는 오버로딩을 위해서 여러번 함수를 선언해야 했으나 kotlin은 함수의 default 값을 지정하여 오버로딩을 할 수 있습니다.

fun main() {
    println(sum(10, 20))
    println(sum(10, 20, 30))
}

fun sum(num1 : Int, num2 : Int, num3 : Int = 0) : Int = num1+num2+num3

>> 30
>> 60

아규먼트 지정

함수에 입력할 아규먼트들을 직접 지정하고 싶으면 간단하게 아래처럼 사용할 수 있습니다.

fun main() {
    println(sum(num1=10, num2=20))
}

fun sum(num1 : Int, num2 : Int) : Int = num1+num2

이렇게 하면 순서를 바꿔도 알아서 지정되게 됩니다.

Unit타입

만약 함수의 반환값이 없는 경우라면 void 타입이겠죠? 근데, kotlin에서는 void라는 타입은 없습니다. 대신에 Unit이라는 타입을 사용할 수 있어요.

fun main() {
    sayHello()
}

fun sayHello() : Unit = println("Hello")

>> Hello
profile
자기주도적, 지속 성장하는 모바일앱 개발자의 기록

0개의 댓글