Kotlin 범위 지정 함수

이주희·2023년 11월 7일
0

spring

목록 보기
14/16
post-custom-banner

범위 지정 함수

apply, with, let, also, run
객체 범위 내에서 코드 블록 실행하거나 조작 가능

수신 객체 + 수신 객체 지정 람다 로 이루어짐

한 객체를 이용해서 람다식을 구성하는 것으로 구성됨..!

종류

  • apply

    수신 객체 속성 변경하고, 객체 자체를 반환

    val person = Person()
    person.apply {
        name = "John"
        age = 30
    }.doSomethingElse()

    객체 초기화, 객체 설정 연속적 수행시 사용

  • with
    수신 객체 속성 변경하지 않고 코드 블록 실행
    해당 객체 내에서 작업 수행 시 사용

    val person = Person()
    with(person) {
        println("Name: $name")
        println("Age: $age")
    }
  • let
    null이 아닌 수신 객체 받아 코드 블록 내에서 작업 수행 하고 결과 반환
    주로 null 검사, 안전한 호출에 사용

    val name: String? = "Alice"
    name?.let {
      println("Name is $it")
    }
  • also
    수신 객체를 그대로 반환하면서 코드 블록 내에서 작업 수행
    객체 조장하면서 작업 결과를 원본 객체로 유지하고 싶을 때 사용

    val person = Person()
    person.also {
      it.name = "Bob"
    }.doSomethingElse()
  • run
    수신 객체 받아 코드 블록 내에서 작업 수행하고, 결과 반환
    수신 객체에서 계산 및 초기화 수행하며 결과 반환하고자 할 때 사용

    val result = "Hello, Kotlin".run {
      length
    }

요약하자면

  • apply : 수신 객체 속성 변환
  • with : 속성 변환없이 객체 관련 수행
  • let : null 검사, 안전한 호출
  • also : 객체 조작, 조작전 리턴
  • run : 객체 조작, 초기화하고 결과 관련 값 리턴
post-custom-banner

0개의 댓글