함수 리터럴 : (Int)->Unit 은 매개변수가 Int타입이고, 반환타입이 Unit인 함수를 저장할 수 있는 타입을 뜻함.

람다식 : {매개변수 -> 반환 값} 형태를 이야기 함.

fun main(args: Array<String>)
{
	val instantFunc: (Int) -> Unit
	instantFunc = { number: Int ->
		println("Hello $number")
	}

	instantFunc(33)
	instantFunc.invoke(33)
}

위의 예제 코드에서 .invoke라는 함수가 있는데, 함수 타입의 변수를 해당 함수를 통하여, 호출해도 된다.

 

익명 함수 : 람다 식으로 표기된 함수 리터럴을 함수 이름이 없는 함수로 다르게 표현할 수 있다. 이를 익명함수라 한다. 

                fun{value type}:{return type}

fun main(args: Array<String>)
{
	val instantFunc: (Int) -> Unit
	instantFunc = fun(number: Int): Unit
	{
		println("Hello $number")
	}

	instantFunc(33)
	instantFunc.invoke(33)
}

it 식별자 : 람다식의 매개 변수가 하나일 경우, 매개 변수 선언을 생략할 수 있다. 그리고 그 매개 변수를 사용하고 싶을 때 사용되는 키워드이다.

fun main(args: Array<String>)
{
	val instantFunc: (Int) -> Unit = {
		println("Hello $it")
	}

	instantFunc(33)
}

 

참고 : 초보자를 위한 Kotlin 200제 라는 책을 기반으로 공부 내용을 정리하였습니다

+ Recent posts