본문 바로가기
2학년 2학기/모바일 소프트웨어 - 코틀린

Kotiln - 함수

by print_soo 2024. 10. 10.

함수의 기본 형태

fun 함수이름(매개변수: 매개변수 타입) : 반환 타입 {
    //함수 동작
}

 

 


 

Top-level function과 member function

class Shape {
    fun calculateArea_method(w: Int, h: Int, ): Int { // member function = method
        return w * h
    }
}

fun calculateArea_top_level(w: Int, h: Int, ): Int { // top-level function
    return w * h
}

 

 

  • Top-level function: 클래스 밖에 생성된 함수
  • Member function: 클래스에 속한 함수

 


가변 인자

: 인자의 개수가 달라질 수 있다.

 

fun accSum(vararg list: Int){
    var sum = 0
    for (item in list) {
        sum += item
        println("sum = $sum")
    }
}

fun main() {
	val arr: IntArrya = intArrayof(1, 2, 3)
    
    accSum(1, 2, 3, 4)
    accSum(1, 2, 3, 4, 5, 6)
    accSum(*arr) //배열자체를 인자로
}

 

 


 

함수를 {} 대신 expression(식)으로

: { } 처럼 block에 함수의 동작이 들어가 있는 것을 expression으로 변경할 수 있다.

 

//[block]
fun max(a: Int, b: Int): Int {
    if(a > b) {
        return a
    } else{
        return b
    }
}



//[expression - 1]
fun max(a: Int, b: Int) =
    if(a > b) {
        a
    } else{
        b
    }

//[expression - 2] -> 한줄로
fun max(a: Int, b: Int) = if (a > b) {a} else {b}

 

식으로 표현하는 방법은 2가지가 있다. 출력 타입과 { }만 생략한 형태, 출력 타입과 { }를 생략하고 한 줄로 작성한 형태가 있다.