💡 함수형 프로그래밍?
자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.
💡 고차함수?
함수를 인수로 취급하거나 혹은 결과로 반환하는 함수
💡 람다?
- 함수가 이름을 가질 필요 없는 익명함수이며 중괄호로 묶어 사용
// 람다 함수
val sum : (Int,Int) -> Int = {x,y -> x+y}
(타입, 타입) -> 반환형 타입
val sum = {x: Int, y: Int -> x+y}
// 고차함수
fun calculator(a :Int, b: Int, p: (Int,Int) -> Int) {
println("$a, $b -> ${p(a,b)}")
}
//호출
calculator(2,4, {a: Int, b: Int -> a+b}) // 이때 람다함수가 인자의 제일 마지막에 있다면 밖으로 뺄 수 있음.
calculator(2,4) {a: Int, b: Int -> a+b}
//또한 고차함수에 타입이 정의되어있는 경우 타입을 생략 가능
calculator(2, 4) { a, b -> a + b }
// 람다 함수가 아닌 일반함수는 앞에 ::를 붙여 인자로 넣기 가능
caculator(2,4,::sum)
// 의미 있는 반환값이 없을 경우
fun print(p :() -> Unit) {
p()
}
// 매개변수 함수식을 nullable로 가능
fun print(p :(() -> Unit)? == null{
p?.invoke()?:println("no")
}
'안드로이드' 카테고리의 다른 글
[안드로이드] LiveData vs Flow 차이점 (0) | 2022.10.05 |
---|---|
[안드로이드] 안드로이드 DialogFragment() 화면 사이즈 조정 (0) | 2022.10.04 |
[코틀린] 코틀린 - 빌더패턴(Builder pattern) (0) | 2022.10.02 |
[코틀린] BackingField & Backing Properties (0) | 2022.10.01 |
[안드로이드] Jetpack (0) | 2022.09.30 |