스택큐힙리스트

Kotlin also 한눈에 이해하기 본문

개발

Kotlin also 한눈에 이해하기

스택큐힙리스트 2025. 7. 29. 09:06
반응형

also는 스코프 함수(scope function) 중 하나예요.
“지금 만든(혹은 불러온) 객체를 그대로 반환하되, 중간에 ‘추가 작업’을 하고 싶을 때” 쓰면 딱 맞습니다.

val user = User("철수", 29).also {
    println("✅ 새 사용자 생성: ${it.name}")
}
// 여기서 user 는 그대로 User("철수", 29)

언제 쓰면 좋은가?

  1. 객체 생성 직후 검증·로깅|
    val config = loadConfig().also { check(it.isValid()) }


  2. 체이닝 사이에 디버깅
val result = list
    .map { it * 2 }
    .also { println("중간 결과: $it") }
    .filter { it > 10 }

apply·let과의 차이, 빠른 비교

  • apply : 블록 안에서 this 로 속성 설정 → 객체 초기화에 좋음. 반환값은 리시버.
  • let : 블록 안에서 it 사용, 람다 결과를 반환 → 널 처리, 변환에 유리.
  • also: 블록 안에서 it 사용, 리시버를 반환 → 사이드 이펙트 전용.

기억법: “do this also, but give me the same thing back.”
(무언가 ‘추가로’ 하고 싶지만 결과값은 그대로 받고 싶을 때)

반응형
Comments