kotlin

Kotlin의 let, with, run, apply 및 함수 사용방법

메모는나의열정 2023. 1. 19. 22:36
반응형

Kotlin의 let, with, run, apply 및 함수

Kotlin은 Java와 완벽하게 호환되는 프로그래밍 언어이며 Android 앱, 서버측 애플리케이션 등을 개발하는 데 사용할 수 있습니다. Kotlin의 주요 기능 중 하나는 함수형 프로그래밍 지원이며, 이 언어에는 null을 허용하는 유형과 null을 허용하지 않는 유형으로 작업하는 데 유용한 여러 함수가 포함되어 있습니다.

let 함수

let함수는 개체가 null이 아닌 경우에만 개체에 대한 작업을 수행하는 데 사용됩니다. 함수 의 구문은 let다음과 같습니다.


object?.let {
    // perform operation on object
}

예를 들어 다음 코드는 문자열이 null이 아닌 경우에만 문자열의 길이를 인쇄합니다.


val str: String? = "Hello, World!"
str?.let {
    println(it.length)
}

의 값 str이 null이면 let블록 내부의 코드가 실행되지 않습니다.

기능

함수 는 with함수와 유사 let하지만 보다 간결한 방식으로 개체에 대해 여러 작업을 수행하는 데 사용됩니다. 함수 의 구문은 with다음과 같습니다.


with(object) {
    // perform operations on object
}

예를 들어 다음 코드는 문자열의 길이를 인쇄한 다음 문자열을 대문자로 인쇄합니다.


val str: String = "Hello, World!"
with(str) {
    println(length)
    println(toUpperCase())
}

실행 기능

run함수는 함수와 유사 let하지만 개체에 대해 수행된 마지막 작업의 결과를 반환합니다. 함수 의 구문은 run다음과 같습니다.


object?.run {
    // perform operations on object
    // return result
}

예를 들어 다음 코드는 문자열이 null이 아닌 경우 문자열의 길이를 반환합니다.


val str: String? = "Hello, World!"
val length = str?.run {
    length
}

의 값 str이 null이면 run함수는 null을 반환합니다.

적용 기능

함수 는 apply함수와 유사 run하지만 객체에 대해 여러 작업을 수행한 다음 객체 자체를 반환하는 데 사용됩니다. 함수 의 구문은 apply다음과 같습니다.


object.apply {
    // perform operations on object
}

예를 들어 다음 코드는 문자열의 길이를 5로 설정한 다음 문자열을 반환합니다.


val str: String = "Hello, World!"
val newString = str.apply {
    setLength(5)
}

또한 기능

함수 는 also함수와 유사 let하지만 작업이 수행된 후 원래 개체를 반환합니다. 함수 의 구문은 also다음과 같습니다.

코드 복사
object.also {
    // perform operations on object
}

예를 들어 다음 코드는 문자열의 길이를 인쇄한 다음 문자열을 반환합니다.

data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2730%27%20height=%2730%27/%3e


val str: String = "Hello, World!"
val newString = str.also {
    println(it.length)
}

이 예에서 블록 내부의 코드 also는 문자열의 길이를 인쇄한 다음 원래 문자열을 반환합니다.

결론

Kotlin의 let, with, run, applyalso함수는 null을 허용하는 객체와 null을 허용하지 않는 객체를 기능적으로 사용하기 위한 강력한 도구 세트를 제공합니다. 이러한 함수를 사용하여 개체에 대한 작업을 수행하고, 결과를 반환하고, 더 간결하고 읽기 쉬운 방식으로 여러 작업을 함께 연결할 수 있습니다. 이러한 함수를 효과적으로 사용하는 방법을 이해하면 Kotlin에서 보다 효율적이고 유지 관리 가능한 코드를 작성하는 데 도움이 됩니다.

data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2730%27%20height=%2730%27/%3e

이러한 함수는 nullable 형식에만 국한되지 않고 null을 허용하지 않는 형식과 함께 사용할 수도 있다는 점에 유의해야 합니다.

, 및 함수는 작업을 수행하고 결과 또는 원래 개체를 반환하는 데 사용할 수 있으며, let및 함수 는 주로 개체에 대해 여러 작업을 수행하고 개체 자체를 반환하는 데 사용됩니다.runalsowithapply

이러한 함수를 사용하면 코드를 더 읽기 쉽고 짧고 표현력 있게 만들 수 있습니다.

이러한 함수를 람다 및 고차 함수와 같은 다른 함수 구조와 결합하여 더 복잡하고 강력한 코드를 작성할 수 있다는 점도 언급할 가치가 있습니다.

요약하면 , let, with, runapply함수 also는 Kotlin에서 더 읽기 쉽고 표현력이 풍부한 코드를 작성하는 데 도움이 되는 강력한 도구입니다. 개체에 대한 작업을 수행하고, 결과를 반환하고, 여러 작업을 보다 간결한 방식으로 함께 연결할 수 있습니다. 이러한 함수를 효과적으로 사용하는 방법을 이해하면 Kotlin에서 보다 효율적이고 유지 관리 가능한 코드를 작성하는 데 도움이 됩니다.

data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2730%27%20height=%2730%27/%3e

이러한 기능을 사용할 때 성능에 미치는 영향을 고려하는 것도 중요합니다. 이러한 함수는 null을 허용하는 유형과 null을 허용하지 않는 유형에서 작동하도록 설계되었기 때문에 개체에 대한 작업을 수행하기 전에 null 값을 확인하는 데 자주 사용됩니다. 이는 특히 많은 수의 null 검사를 수행하는 경우 코드에 오버헤드를 추가할 수 있습니다.

성능에 미치는 영향을 최소화하려면 필요한 경우에만 이러한 함수를 사용하고 null ?.허용 형식으로 작업할 때는 null 안전 연산자를 사용하는 것이 좋습니다. 이 연산자를 사용하면 명시적 null 검사 없이 개체가 null이 아닌 경우에만 개체에 대한 작업을 수행할 수 있습니다.

예를 들어, let함수를 사용하여 null 허용 개체에 대한 작업을 수행하는 대신 null-safe 연산자를 사용하여 동일한 결과를 얻을 수 있습니다.


val str: String? = "Hello, World!"
str?.length

명심해야 할 또 다른 사항은 이러한 함수는 nullable 형식과 함께 사용하도록 설계되었으므로 nullable이 아닌 형식에서 null 값을 확인하는 데 사용해서는 안 된다는 것입니다. null을 허용하지 않는 유형은 null이 되지 않도록 보장되므로 null을 허용하지 않는 유형에서 이러한 함수를 사용하는 것은 중복됩니다.

특히 함수 프로그래밍 개념에 익숙하지 않은 경우 이러한 함수는 다른 많은 함수 구조와 마찬가지로 코드를 예측하기 어렵게 만들 수 있다는 점에 유의해야 합니다. 따라서 주의해서 사용하고 사용하기 전에 어떻게 작동하는지 이해하는 것이 중요합니다.

결론적으로 let, with, run, applyalso함수는 Kotlin에서 더 읽기 쉽고 표현력이 풍부한 코드를 작성하는 데 도움이 되는 강력한 도구입니다. 그러나 이러한 기능을 사용할 때의 성능 영향을 고려하고 필요한 경우에만 사용하는 것이 중요합니다. 또한 이러한 함수는 함수형 프로그래밍 개념을 이해하고 주의하여 사용해야 합니다.

반응형

'kotlin' 카테고리의 다른 글

코틀린 제네릭이란 ?  (0) 2023.01.19
코틀린 코루틴이란 ?  (0) 2023.01.19
코틀린 배열 - 5  (0) 2023.01.09
코틀린 문자열 연결 - 4  (0) 2023.01.09
코틀린 변수 선언 - 3  (1) 2023.01.09