반응형

코틀린(Kotlin)도 다른 언어와 동일하게 함수를 사용할 수 있습니다.

코틀린에 가장 큰 함수 특징은 일급 객체로 사용이 가능합니다.

일급 객체는 일반적인 함수 형식과  엔티티로 적용하여 변수로 바로 사용이 가능하다.

함수 기본 형식은 (함수명) -> 반환 형식으로 되어 있습니다.

fun MakeString(mes : String): String{
    return mes + "  Create Message"
}

MakeString 함수는 mes String 매개변수를 받아서 String으로 반환합니다.

println(MakeString("함수 사용"))

println 함수를 사용해서 출력합니다.

출력 결과 입력된 "함수 사용" 뒤에 메시지가 추가되었습니다.

일반적인 함수는 함수를 만들어서 호출할 수 있습니다.

코틀린(Kotlin) 함수는 이런 함수를 변수 처럼 정의할 수 있습니다.

var MString:(String) -> String = fun(mes:String) = mes + " Create Message 2"

변수 MString에 함수를 직접 선언할 수 있습니다.

    println(MakeString("함수 사용"))

    println(MString("변수 함수 사용"))

MakeString 함수와 MString 변수를 출력 했습니다.

출력 결과 동일하게 입력 String에 추가 내용이 포함되어 있습니다.

함수에 사용되는 매개변수를 다양하게 사용이 가능합니다.

    var MString:(String) -> String = fun(mes:String) = mes + " Create Message 2"

    var a:(Int) -> Int = fun(i:Int) = i * 10

    println(a(7).toString())

    println(MakeString("함수 사용"))

    println(MString("변수 함수 사용"))

Int를 사용해서 추가 함수 a를 선언했습니다.

기존과 동일하게 println 함수를 사용해서 출력했습니다.

a 함수는 입력 변수에 10을 곱하는 형태로 7을 입력 시 70을 반환했습니다.

코틀린 함수는 매개변수 형식과 반환 형식을 자유롭게 사용할 수 있어 문법이 매우 편리합니다.

또한 외부 함수 정의가 아닌 내부에 함수를 정의를 사용할 수 있어 객체에 대한 처리를 완벽하게 수용할 수 있습니다.

내부 함수 정의 후 모호하다면 invoke() 메서드를 사용해서 모호함을 해결할 수 있다.

감사합니다.

반응형

+ Recent posts