상세 컨텐츠

본문 제목

Kotlin Docs Scope functions / 범위 기능 1

이론공부/코틀린 문법

by 뽀사장 2024. 3. 29. 18:50

본문

728x90
반응형

 

https://kotlinlang.org/docs/scope-functions.html

 

Scope functions | Kotlin

 

kotlinlang.org

 

 

범위기능 (Scope functions)

코틀린 표준 라이브러리에는 객체의 맥락 내에서 코드 블록 실행이 유일한 목적인 함수들이 포함되어 있다. 

람다표현식을 제공하는 객체에서 함수를 호출 할 때 임시 범위를 형성한다. 이 범위에서는 이름없이 개체에 접근할 수 있다.

그런 함수를 범위함수라고 한다. 

let, run, with, apply, also 다섯가지가 있다

 

기본적으로, 이런 함수는 모두 같은 작업을 수행한다: 객체에서 블록코드를 실행한다.

블록안에서 이 객체를 사용하는 방식과 전체 표현식의 결과가 다르다.

 

범위 함수를 사용하는 일반적인 예:

 

Person("Alice", 20, "Amsterdam").let {
    println(it)
    it.moveTo("London")
    it.incrementAge()
    println(it)
}

Person(name=Alice, age=20, city=Amsterdam)
Person(name=Alice, age=21, city=London)

 

여기서 만약 let없이 같은 값을 내려면 새로운 변수를 소개하고 사용할때마다 이름을 반복해야 한다

 

 

val alice = Person("Alice", 20, "Amsterdam")
println(alice)
alice.moveTo("London")
alice.incrementAge()
println(alice)

Person(name=Alice, age=20, city=Amsterdam)
Person(name=Alice, age=21, city=London)

 

범위 함수는 새로운 기술적 기능이 소개된건 아니지만 코드를 간결하고 가독성 높게 만들어 준다

 

범위 함수들은 유사점이 많아서 적합한 것을 고르는게 까다로울 수 있다. 당신의 프로젝트 안에서의 의도와 일관성에따라 선택이 달라진다. 아래에서 범위함수와 그들의 규칙의 차이점을 설명한다.

 

 

함수 선택 (Function selection)

목적에 맞는 함수를 선택 할 수 있도록 핵심요약한 표를 제공한다

Function Object reference Return value Is extensionfunction
let it Lambda result Yes
run this Lambda result Yes
run - Lambda result No: called without the context object
sith this Lambda result No: takes the context object as an argument
apply this Context object Yes
also it Context object Yes

 

 

 

 

 

 

728x90
반응형

관련글 더보기