안드로이드(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반응형