study gomi

[Android/Kotlin] suspend fun, let vs apply 본문

App/Android

[Android/Kotlin] suspend fun, let vs apply

공부하곰 2024. 10. 18. 10:40
728x90
반응형

1. suspend 함수

  • 정의: suspend 함수는 비동기적으로 실행될 수 있는 함수다. 이 함수는 중단하고 나중에 다시 시작할 수 있어.
  • 사용 이유: 긴 작업(예: 네트워크 요청)을 할 때 UI가 멈추지 않도록 하려고. 사용자가 앱을 계속 사용할 수 있도록 해준다.

예를 들어 API에서 데이터를 받아오는 함수를 suspend로 만들면 호출하는 동안 UI가 블로킹되지 않고 계속 작동함.

2. let vs apply

이 두 가지는 객체를 다룰 때 사용하는 함수들이다.

let

  • 주요 특징: 주어진 객체를 안전하게 사용.
  • 사용 예: null이 아닐 때만 작업을 수행하고 싶을 때 사용.
mService?.let { service ->
    // service를 사용할 수 있음
    service.setKorTime()
}

위의 코드는 mService가 null이 아닐 때만 service라는 이름으로 사용할 수 있도록 해줘서 null 안전성을 보장함.

 

apply

  • 주요 특징: 객체의 속성을 수정하고, 그 객체를 반환함.
  • 사용 예: 여러 속성을 설정하고 싶을 때 유용.
mService?.apply {
    // 이 블록 안에서 'this'는 mService 가리킴
    setHairColor(Color.Pink)
    setMakeUp(MakeUpType.Type1)
}

위의 코드는 mService의 여러 속성을 쉽게 설정할 수 있도록 해준다.

this를 사용해서 현재 객체에 접근하는데 여러 메서드를 호출할 때 더 깔끔하게 작성할 수 있음.

요약

  • suspend: 비동기 작업을 가능하게 해서 긴 작업을 수행할 때 UI가 멈추지 않도록 함.
  • let: 안전하게 객체를 사용할 수 있더. null이 아닐 때만 작업을 수행.
  • apply: 객체를 수정하는 데 유용. 여러 속성을 한 번에 설정 가능.
728x90
반응형