안드로이드(Kotlin)
Android(Kotlin) 람다(Lambda), SAM변환, 확장함수(기존클래스에 함수 추가)
SourceTree
2021. 11. 20. 09:08
반응형
Lambda람다식(자바8 람다식 지원)
//기본
fun sum(x: Int, y: Int): Int {
return x + y
}
//{}생략, return생략
fun sum(x: Int, y: Int) = x + y
//변수를 함수처럼 사용
var add = { x: Int, y: Int -> x + y }
println(add(5, 15)) // 출력 값: 20
SAM(Single Abstract Method) 변환
//메서드가 하나인 인터페이스는 SAM(Single Abstract Method)변환 가능
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(p0: View?) {
// 클릭 이벤트
}
})
//SAM변환
button.setOnClickListener {
// 클릭 이벤트
}
확장 함수(기존클래스에 기능추가)
- class이름에 . 을 찍고 함수 이름을 작성하여 추가
//Int클래스에 기능추가. this로 접근가능
fun Int.isEven() = this % 2 == 0
val a = 10
val b = 11
println(a.isEven()) // true
println(b.isEven()) // flase
반응형