함수형 프로그래밍
- 함수가 일급 객체로써 재사용성을 높인 프로그래밍 패러다임
- 일급 객체 : 변수나 데이터에 할당할 수 있고 리턴값으로 사용 가능하며 객체를 인자로 넘길 수 있어야 함
방식 | 의미 | ex |
절차 지향 프로그래밍 | 순서대로 동작하는 방식 | C |
객체 지향 프로그래밍 | 클래스가 최우선이 되는 방식 | Java, C++ |
함수형 프로그래밍 | 함수의 동작이 최우선이 되는 방식 | Kotlin, Javascript |
장점
- 코드를 간결하게 구현할 수 있고 가독성을 높일 수 있음
- 동시성 작업을 쉽게 구현할 수 있음
람다 함수
람다 함수는 익명 함수를 의미
람다 규칙
- 람다 함수는 중괄호{}로 표현
- -> 기준으로 왼쪽은 매개변수, 오른쪽은 함수 내용으로 작성
- 매개변수 타입을 추론할 수 있으면 생략 가능
- 함수의 마지막 표현식은 반환 값
- 매개변수가 하나일 경우에는 생략 가능
- 아래와 같이 일반 함수 sum1을 람다 함수인 sum2로 변경 가능
fun main() {
println(sum1(1, 2)) // 3
println(sum2(10, 20)) // 30
}
fun sum1(num1: Int, num2: Int): Int {
return num1 + num2
}
val sum2 = {num1: Int, num2: Int -> num1 + num2}
- 표현식이 2줄 이상일 경우 마지막 표현식이 반환됨
fun main() {
println(sum2(10, 20)) // num1 + num2 = 30
}
val sum2 = {num1: Int, num2: Int ->
print("num1 + num2 = ")
num1 + num2
}
람다 생략
val sum1: (Int, Int) -> Int = {num1: Int, num2: Int -> num1 + num2 } // 전체 표현
val sum2 = {num1: Int, num2: Int -> num1 + num2} // 선언 자료형 생략
val sum3: (Int, Int) -> Int = {num1, num2 -> num1 + num2} // 매개변수 자료형 생략
val sum4 = {num1, num2 -> num1 + num2} // 자료형 추론이 불가능하여 에러 발생
'Kotlin' 카테고리의 다른 글
코틀린 프로퍼티와 초기화 (0) | 2023.02.16 |
---|---|
코틀린 클래스와 객체 (0) | 2023.02.14 |
코틀린 조건문과 반복문 (0) | 2023.02.10 |
코틀린 자료형 (0) | 2023.02.10 |
코틀린(Kotlin) 이란? (0) | 2023.02.10 |