세상을 더 편리하게
[Kotlin]다양한 함수
Programming/Kotlin 2020. 3. 3. 02:07

익명 함수 익명 함수는 말 그대로 이름이 없는 함수이다. 아래와 같이 val 값에 넣을 수 있다. val anonymousFunction = fun(x: Int, y: Int) = x + y 그럼 왜 람다식 대신에 익명함수를 쓸까? -> 이유는 람다식에는 제어문(return/break/continue)를 쓰기 어렵기 때문이다. 인라인 함수 인라인 함수는 복붙(복사 붙여넣기)라고 생각하면 쉽다. fun main() { noinlinefun() inlinefunc() } fun noinlinefun(){ println("noInLinefunc") } inline fun inlinefunc(){ println("inlinfunc") } 를 인라인 함수의 역할대로 다시 적으면 fun main() { noinli..

[Kotlin]람다식을 함수의 매개변수로
Programming/Kotlin 2020. 3. 2. 02:01

fun main() { moreParam("One", "Two") { _, b -> b } } fun moreParam(a: String, b: String, lambda: (String, String) -> String) { println(lambda(a, b)) }​ fun main() { //noParam ({ "Hello" }) noParam { "Hello" } } fun noParam(lambda:()->String) = println(lambda()) 위의 두개의 noParam 은 같은 뜻을 의미한다. 함수의 마지막 파라미터가 람다식인 경우 { } 로 람다식을 표현 하여 뺄 수 있다. fun main() { oneParam(4) { "Hello" } } fun oneParam(a:Int,la..

[Kotlin]함수를 람다식 처럼
Programming/Kotlin 2020. 3. 2. 02:01

fun main() { val res1 = funcParam(3, 2, ::sum) } fun sum(a: Int, b: Int) = a + b fun funcParam(a: Int, b: Int, c: (Int, Int) -> Int) = c(a, b) [ ::함수명 ] 을 이용해서 함수를 람다식처럼 쓸 수 있다.

[Kotlin]람다식의 호출
Programming/Kotlin 2020. 3. 2. 02:01

callByValue 과 callByName의 차이점 lambda() 와 lambda 의 호출 차이점 예제 1 fun main(){ val result = callByValue(lambda()) println(result) } fun callByValue(b: Boolean): Boolean{ println("callByValue") return b } val lambda: () -> Boolean = { println("lambda") true } 위의 식에서는 val lambda: () -> Boolean = { println("lambda") true } callByValue(lambda()) 에서 먼저 lambda() 실행 fun callByValue(b: Boolean): Boolean{ pri..