💡람다식 문법
- 중괄호로 감싼다.
- 인자와 본문은 -> 로 구분.
- 인자는 ()로 감싸지 않는다.
- 인자는 타입을 생략 가능.
- 변수에 람다식을 넣는 경우 인자의 타입 생략 불가.
고차함수 : 람다를 인자로 받거나 반환하는 함수 (함수를 함수의 매개변수로 받을 수 있고, 함수를 반환할 수 있는 함수)
fun main() {
val res1 = sum(3,2)
val res2 = mul(sum(2,2),3)
}
fun sum(a:Int,b :Int) = a+b
fun mul(a:Int,b :Int) = a*b
-> 좌측 : 함수의 파라미터를 괄호 안에 명시
-> 우측 : 함수의 반환 타입을 명시
() -> Unit : 매개변수도 없고, 반환값도 없음.
A.(B) -> C : 함수타입은 추가적인 수신자 타이블 가질 수 있음. 수산자 타입 객체에 매개변수 B타입의 값을 주면 C타입의 값을 반환.
💡ex)
button.setOnClickListener( View.OnClickListener() {
override fun onClick(view:View!){
}) // 람다를 사용하지 않고 구현
button.setOnClickListener { v -> ...} // 람다 사용
Inline 함수 : 함수 선언 앞에 inline 예약어를 추가한 함수. 컴파일 단계에서 정적으로 포함되므로 실행 때 함수 호출 발생 X.
*고차함수에 람다 함수를 전달하고 이 람다 함수를 이용하는 코드가 많아져서 런타임 때 성능 문제가 발생 가능.
'안드로이드' 카테고리의 다른 글
[코틀린] 코틀린 기초 - 2 (0) | 2022.09.25 |
---|---|
[코틀린] 코틀린 기초 (0) | 2022.09.24 |
[안드로이드] Kotlin 범위 지정 함수(let, with, run, apply, also) (0) | 2022.03.27 |
[Android] 코틀린의 enum class & Sealed class (0) | 2021.10.07 |
[Android] Kotlin 코루틴 사용 (0) | 2021.10.07 |