본문 바로가기
🍃 Language/Kotiln

[Kotlin] 코틀린 심화문법1 (람다식:lambda expression)

by 카프리썬_ 2022. 1. 31.
728x90
728x90

지금까지 코틀린 기본세팅을 진행했다.

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)
}

 

728x90

 

람다식 생성 : 인자를 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/

 

Kotlin - 람다 표현식(Lambda expression)에 대해서 알아보기

쉽게 말하면 람다는 익명함수입니다. 익명함수는 함수의 이름이 없는 함수를 말합니다. 보통 한번 사용되고 재사용되지 않는 함수를 만들때 익명함수로 만듭니다. 람다함수를 사용하면 코드 가

codechacha.com

https://tourspace.tistory.com/110

 

[Kotlin] 코틀린 람다 #1 - 기본 문법

이 글은 Kotlin In Action을 참고 하였습니다. 더욱 자세한 설명이나 예제는 직접 책을 구매하여 확인 하시기 바랍니다 코틀린의 람다는 자바8의 람다와 개념은 매우 비슷합니다. 다만 표현하는 방

tourspace.tistory.com

 

728x90
반응형