지금까지 코틀린 기본세팅을 진행했다.
2022.01.29 - [Kotlin] 코틀린 기본개념 - 코틀린이란? 도대체 왜 쓰는가? 특징!
2022.01.28 - [Kotlin] 코틀린 환경설정 - Intellj에서 코틀린 프로젝트 생성하기
2022.01.29 - [Kotiln] Intellj에서 코틀린 코딩컨벤션 Kotlin Style Guide 적용하기
2022.01.30 - [Kotiln] 코틀린 실행하기 - Scratch File (스크래치 파일) 만들기
이제는 코틀린에 익숙해지기 위해서 간단한 코틀린 기본문법을 돌려볼 것이다.
2022.01.29 - [Kotiln] 코틀린 기본문법1 (변수선언/함수선언/자료형/반복문/조건문)
2022.01.30 - [Kotiln] 코틀린 기본문법2 (NULL처리 : lateinit/lazy/!!/?/?.)
2022.01.30 - [Kotiln] 코틀린 기본문법3 (클래스와 컬렉션: List/Map/Set)
람다표현식
쉽게 말하면 익명함수로 함수의 이름이 없는 함수를 의미한다.
보통 한번 사용되고 재사용되지 않는 함수를 만들때 사용한다.
람다식을 사용하면 코드가독성이 높아지고 함수형 프로그래밍에서 사용하는 패턴이다.
람다식 생성 : 인자가 없는 익명함수
이름없이 정의 되는 함수, greeting에 할당되는 내용이 익명함수
// 익명함수 생성 방법1
val greeting = fun(){ println("Hello") }
// 익명함수 생성 방법2
val greeting: () -> Unit = { println("Hello") }
// 익명함수 호출
greeting() //Hello출력
람다식 생성 : 인자를 받고, 값을 리턴하는 익명함수
인자를 받으려면 인자의 이름과 타입을 명시해줘야한다.
리턴값은 return키워드를 쓰지 않고 -> 이후의 값이 리턴값이 된다.
fun main(args: Array<String>) {
// 익명함수를 생성하여 greeting에 할당
val greeting2 = { name: String, age:String -> "Hello. My name is $name. I'm $age year old" }
// 익명함수 호출
val result = greeting2("chacha", "5")
println(result) //출력 : Hello. My name is chacha. I'm 5 year old
}
람다식 생성 : 인자를 받고, 값을 리턴하는 익명함수 (인자타입 생략)
원래는 인자를 받으려면 인자의 이름과 타입을 명시해야하는데,
익명함수가 할당되는 변수(->이후 값)에 리턴타입이 정의되어 있다면 인자타입을 생략해도 된다.
fun main(args: Array<String>) {
// 익명함수를 생성하여 greeting에 할당
val greeting2: (String, String) -> String = { name, age -> "Hello. My name is $name. i'm $age year old" }
// 익명함수 호출
val result = greeting2("chacha", "5")
println(result)
}
람다식 생성 : 인자를 1개 받을 경우, 인자 선언 생략하는 익명함수
원래는 인자를 받으려면 인자의 이름과 타입을 명시해야하는데,
인자를 오직 1개 받는다면 인자의 이름까지 생략할수 있다. 대신 생략한 이름을 it 키워드로 받을 수 있다.
//인자타입 생략
val greeting2: (String) -> String = { name -> "Hello. My name is $name."}
val result = greeting2("chacha")
//인자이름(name) 생략
val greeting2: (String) -> String = { "Hello. My name is $it."}
val result = greeting2("chacha")
이렇게 생략을 많이 할 수 있는 이유는 코틀린의 컴파일러가 변수와 리턴타입을 이미 알고 있기 때문이다.
https://codechacha.com/ko/kotlin-lambda-expressions/
https://tourspace.tistory.com/110
'🍃 Language > Kotiln' 카테고리의 다른 글
[Kotlin] 코틀린 심화문법3 (data class와 open class) (0) | 2022.02.03 |
---|---|
[Kotlin] 코틀린 코루틴 개념과 basics - 새차원 강의1,2요약 (0) | 2022.01.31 |
[Kotlin] 코틀린 심화문법2 (확장함수/고차함수/표준라이브러리) (0) | 2022.01.31 |
[Kotlin] 코틀린 기본문법3 (클래스와 컬렉션: List/Map/Set) (0) | 2022.01.30 |
[Kotlin] 코틀린 기본문법2 (NULL처리 : lateinit/lazy/!!/?/?.) (0) | 2022.01.30 |
[Kotlin] 코틀린 실행하기 - Scratch File (스크래치 파일) 만들기 (0) | 2022.01.30 |