반응형
코틀린은 함수형 프로그래밍( FP )과 객체 지향 프로그래밍( OOP )을 모두 지원하는 다중 패러다임 언어입니다.
일급 객체 특징
● 일급 객체는 함수의 인자로 전달할 수 있다.
● 일급 객체는 함수의 반환 값에 사용할 수 있다.
● 일급 객체는 변수에 담을 수 있다.
람다식은 일급 객체의 특징을 가진 이름 없는 함수입니다.
람다식
인자, 매개 변수를 이용한 람다식 함수 작성
fun main() {
println(highFunc({x,y -> x+y},10,20)) // 람다식 함수를 인자로 넘김
}
fun highFunc(sum: (Int,Int) -> Int, a:Int, b:Int):Int = sum(a,b) // sum 매개변수는 함수
매개변수
highFunc()의 매개 변수로 (함수, 변수, 변수)입니다.
매개변수로 함수 형태는 익숙하지 않지만, 결국 뒷부분 ( : 콜론 뒷 부분) 만 다를 뿐입니다.
fun highFunc(sum: (Int, Int) -> Int, a: Int, b: Int):Int = sum(a,b)
인자
fun main(){
println( highFunc( {x, y -> x+y}, 10, 20 ) )
}
변수에 할당하는 람다식 함수 작성
fun main() {
var result : Int
var mul ={x:Int, y:Int -> x*y} // 일반 변수에 람다식 할당
result=mul(2,3) //람다식이 할당된 변수는 함수처럼 사용 가능
println(result)
}
변수 mul 이름이 함수 형태로 사용할 수 있게 됩니다. mul (2, 3)
람다식 선언과 할당
val multi: (Int, Int) -> Int = { x: Int, y: Int -> x * y }
생략 표현
val multi: (Int, Int) -> Int = { x: Int, y: Int -> x * y }
val multi: (Int, Int) -> Int = { x , y -> x * y } // 자료형 생략
val multi = { x: Int, y: Int -> x * y } // 선언 자료형 생략
구분을 위해 배경색 적용
val multi: (Int, Int) -> Int = { x: Int, y: Int -> x * y }
val multi: (Int, Int) -> Int = { x , y -> x * y } // 자료형 생략
val multi = { x: Int, y: Int -> x * y } // 선언 자료형 생략
반환 자료형과 매개변수에 따른 표현
val greet: ()-> Unit = { println("Kotlin") } // 매개변수와 리턴이 없는 경우
val square: (Int) -> Int ={ x -> x * x } // 매개변수와 리턴이 있는 경우
Unit은 반환 값이 없을 경우 사용합니다.
반응형
'Do it 코틀린 프로그래밍' 카테고리의 다른 글
코틀린 반복문( for, while, do while ) (0) | 2020.05.22 |
---|---|
코틀린 조건문 ( if~else, when ) (0) | 2020.05.19 |
코틀린 함수 (선언, 간략화, 매개변수 default값) (2) | 2020.05.13 |
코틀린 변수 null 허용 및 세이프 콜, 엘비스 연산자 (0) | 2020.05.12 |
안드로이드 스튜디오(Android Studio)로 코틀린 문법 연습하는 방법 (2) | 2020.05.11 |
댓글