Lewis's Tech Keep

[Kotlin] 코틀린 적응기 - scope function 본문

Kotlin/Kotlin 적응기

[Kotlin] 코틀린 적응기 - scope function

Lewis Seo 2024. 10. 1. 22:19

시작

실제로는 다른 코드로 많이 쓸 것 같은데 가독성과 같은 측면에서 사용하는 경우가 많다고 하니 알아두자.

 

배우고 있는 것

https://www.inflearn.com/course/java-to-kotlin

 

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런

최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ J

www.inflearn.com

 

 

1. scope function

let, apply, also, run, with

와 같은 것들을 사용할 수 있다.

 

let
주요 목적: 특정 객체의 결과를 가지고 작업을 수행할 때 사용.
사용 사례: null 체크 후 처리, 값을 변환하거나 가공할 때.
문맥: 해당 객체가 파라미터로 전달됨(it으로 접근).
리턴 값: 람다의 결과를 반환.

 

apply

주요 목적: 객체의 컨텍스트에서 일련의 작업을 수행하고 결과를 반환.
사용 사례: 특정 객체의 프로퍼티를 기반으로 계산하거나 로직을 처리한 후 결과를 반환할 때.
문맥: 해당 객체가 this로 사용됨.
리턴 값: 람다의 결과를 반환.

 

also

주요 목적: 객체를 수정한 후 동일한 객체를 반환.
사용 사례: 객체 초기화나 설정 시 사용, 객체를 구성하는데 유용.
문맥: 해당 객체가 this로 사용됨.
리턴 값: 객체 자신을 반환.

run

주요 목적: 객체를 그대로 유지하면서 추가 작업을 수행할 때 사용 (주로 로깅, 디버깅).
사용 사례: 객체에 영향을 미치지 않는 부가적인 작업(예: 로깅) 후에도 객체를 반환하고 싶을 때.
문맥: 해당 객체가 파라미터로 전달됨(it으로 접근).
리턴 값: 객체 자신을 반환.

 

with

주요 목적: 객체의 작업을 수행하지만 그 객체가 아닌 다른 값을 반환.
사용 사례: 한 객체에서 여러 작업을 수행한 후, 객체가 아닌 결과를 반환하고 싶을 때.
문맥: 해당 객체가 this로 사용됨.
리턴 값: 람다의 결과를 반환.

 

나중에 필요할 때마다 보면 될 것 같고 let, with 의 예시만 가져 와 보았다.

 

let

fun printPerson(person: Person?) {
    // let (scope function)
    // 확장함수 람다를 받아 실행 결과를 반환한다.
    person?.let {
        println(it.name)
        println(it.age)
    }
}

 

with

    val userProfile = with(user) {
        UserProfileDto(
            userId = id,        // UserDto의 id를 사용
            fullName = name,     // UserDto의 name을 사용
            contactEmail = email // UserDto의 email을 사용
        )
    }
Comments