일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- DataBinding
- 안드로이드
- Android WebView
- OkHttp Interceptor
- android recyclerview
- 습관만들기
- 안드로이드 갤러리 접근
- Kotlin
- 안드로이드 fcm
- WebView
- 프로그래머스 알고리즘
- 카카오 알고리즘
- Kotlin FCM
- 영어독립365
- Android 12
- Java
- 알고리즘 자바
- Android Navigation
- Android DataBinding
- 66챌린지
- Android Jetpack
- Android ProgressBar
- scope function
- Android 12 대응
- Android Interceptor
- Android ViewPager2
- 영어공부
- Android
- 안드로이드 카카오 로그인
- MVP Architecture
Archives
- Today
- Total
Developer Geek
Kotlin 람다식 Basic 본문
반응형
개요: 람다(표현)식 이란
람다(표현)식은 선언되지 않았지만 표현식으로 즉시 전달되는 함수이다.
참고). 선언되지 않고도 표현식으로 즉시 전달되는 함수를 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 }
반응형
'안드로이드' 카테고리의 다른 글
Android Action Bar 숨기기 in Kotlin (0) | 2022.03.03 |
---|---|
Android BottomSheetDialogFragment in Kotlin (0) | 2022.03.02 |
안드로이드 RecyclerView.ListAdapter 예제 in Kotlin (0) | 2022.01.29 |
안드로이드 Retrofit Header 추가 Kotlin (0) | 2022.01.19 |
Android TextView 말줄임(...) Kotlin, DataBinding (0) | 2022.01.15 |
Comments