Developer Geek

Kotlin 람다식 Basic 본문

안드로이드

Kotlin 람다식 Basic

devGeek 2022. 2. 6. 17:58
반응형

개요: 람다(표현)식 이란

람다(표현)식은 선언되지 않았지만 표현식으로 즉시 전달되는 함수이다.
참고). 선언되지 않고도 표현식으로 즉시 전달되는 함수를 Function literal하다고 표현하기도 한다.

예를 들어, 안드로이드 개발 중 흔히 람다식을 사용하는 경우는 버튼에 클릭 이벤트를 설정하는 것이다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var btn = findViewById<Button>(R.id.btn)
        btn.setOnClickListener(object: View.OnClickListener{
            override fun onClick(view: View?) {
                Toast.makeText(this@MainActivity, "버튼 클릭 이벤트", Toast.LENGTH_SHORT).show()
            }
        })
    }
}

위와 같은 경우에는, btn.setOnClickListener( ) 에서 파라미터로 View.OnClickListener 인터페이스를 구현하며 onClick(view: View?) 함수를 재정의 했습니다.

하지만 람다식을 이용하게 되면 코드가 매우 간결해집니다.


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var btn = findViewById<Button>(R.id.btn)
        btn.setOnClickListener { view ->
            Toast.makeText(this@MainActivity, "버튼 클릭 이벤트", Toast.LENGTH_SHORT).show()
        }
    }
}

람다식을 사용함으로써 View.OnClickLister.onClick() 함수를 명명하지 않고, 표현식으로 간결하게 함수를 전달 할 수 있습니다.

람다(표현)식 문법

val sum: (Int, Int) -> Int = { x: Int, y: Int -> x + y }
  • 람다식은 항상 중괄호 안에 작성되어야 합니다.

  • 람다식에서 사용될 매개변수는 중괄호 안에 선언되어야 합니다.

  • 반환형이 있는 경우, 람다식에서 마지막 값을 반환합니다.

  • : (Int, Int) -> Int 와 같은 Type에 대한 명시는 선택적으로 추가하거나 삭제할 수 있다.

    • Type에 대한 명시를 하지 않을 경우,
val sum = { x: Int, y: Int -> x + y }
반응형
Comments