📌 유튜브 강의 - 코틀린 끝내기
코틀린 끝내기
www.youtube.com
람다
✏️람다(Lamda)
람다식은 우리가 마치 value처럼 다룰 수 있는 익명함수이다.
- 메소드의 파라미터로 넘겨줄 수 있다.
- return 값으로 사용할 수 있다.
기본 정의
val lamdaName : Type = {argumentList -> codeBody}
val square :(Int) -> (Int) ={number:Int ->number*number}
val nameAge :(String, Int) -> String ={name:String, age:Int ->
"my name is ${name} I'm ${age}"
}
fun main() {
println(square(12))
println(nameAge("yudaeng", 20))
}
✏️확장함수
fun main() {
val a ="yudaeng said "
val b ="doongdang said "
println(a.pizzaIsGreat())
println(b.pizzaIsGreat())
println(extendString("hyj", 25))
}
// 확장 함수도 람다식의 형태로 사용함
val pizzaIsGreat : String.() -> String ={
this + "Pizza is the best!"
}
/**
* this : 확장함수를 콜하는 object
* it : 파라미터가 하나인 경우에는 it으로 사용 가능
*/
fun extendString(name : String, age : Int) : String {
val introduceMyself : String.(Int) -> String ={
"I am ${this} and ${it} years old"
}
return name.introduceMyself(age)
}
✏️람다의 리턴
fun main() {
println(calculateGrade(97)) // perfect
println(calculateGrade(971)) // Error
}
// 람다의 return
val calculateGrade : (Int) -> String = {
when(it) {
in 0..40 -> "fail"
in 41..70 -> "pass"
in 71..100 -> "perfect"
else -> "Error" // 반드시 리턴 값이 있어야 하기 때문에 else 생략 불가!
}
}
✏️람다를 표현하는 2가지 방법
(정리중)