본문 바로가기
Android/안드로이드 스터디(Kotlin)

Kotlin] 32. 함수 참조(Function Reference)

by 김마리님 2020. 12. 10.

Unit은 이미 만들어진 함수나 객체의 멤버함수를 참조할수도 있다.

 

package functionReferenceEx

fun plus(a : Int, b : Int) = println("plus calling ${a + b}")

object Object {
    fun minus (a : Int, b : Int ) = println("Object minus calling ${a - b}")
}

class Class {
    fun average (a : Int, b : Int ) = println("class average calling ${(a+b)/2}")
}

fun main() {
    var instantFunc : (Int, Int) -> Unit
    instantFunc = :: plus
    instantFunc(3,7)

    instantFunc= Object :: minus
    instantFunc(7,3)

    instantFunc = Class() :: average
    instantFunc(6,8)
}

 

다음은 세 가지 타입의 함수를 선언했다

1. 기본 함수

2. 객체 속의 멤버 함수

3. 클래스 속의 멤버 함수

 

함수 앞에 :: 를 붙이면 그 함수는 참조함수가 된다. 타입은 그 함수의 시그니쳐에 맞는 함수 타입이 된다.

객체와 클래스는 클래스 명을 먼저 선언하고, 그 뒤에 함수를 참조시킨다. 

 

결과 :

 

plus calling 10
Object minus calling 4
class average calling 7

반응형