람다 (Lambda)

두주·2024년 2월 3일
0

TIL

목록 보기
48/58

람다식 (Lambda Expression) ?

람다식은 함수를 하나의 식으로 표현한 것이다.
함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에
익명 함수의 한 종류라고 볼 수 있다.

// 기존방식
fun main() {
  return "Hello World!"
}

기존에는 함수를 선언할 때 아래와 같이 선언하였다.

람다 방식에서는 메소드 명이 필요하지 않으며, -> (화살표)를 통해 함수를 구현한다.

() -> "Hello World"

it

람다의 파라미터가 하나이고 컴파일러가 타입을 추론할 수 있는 경우 it을 사용할 수 있다.

fun printMenu(menu: Menu) {
    println("메뉴 이름: " + menu.name + ", 가격: " + menu.price + "원")
}

fun main() {
    val menu = Menu("피자", 15000)
    printMenu(menu)
}

간단한 예시를 작성했다.

위는 람다식을 적용하기 전, 일반적으로 사용하는 형태이다.

fun printMenu(menu: Menu) {
    println("메뉴 이름: ${menu.name}, 가격: ${menu.price}원"
}

fun menu() {
	val menu = Menu("피자, 15000)
	printMenu(menu)
}

이렇게 변형할 수 있다.

이걸 조금 더 변형하면

fun printMenu(menu: Menu) {
	with(menu) {
    	println("메뉴 이름: ${it.name}, 가격: ${it.price}원"
    }
}

fun menu() {
	val menu = Menu("피자, 15000)
	printMenu(menu)
}

이렇게도 변경될 수 있다.

코드의 가독성을 높여 실수할 일이 줄어듦과 동시에
다른 사람이 내 코드를 보고 더 쉽게 이해할 수 있도록 돕는다.

profile
야옹.

0개의 댓글