Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Migrate
- 코틀린
- 오랜지파이
- Kotlin
- 사용중인포트검색
- Visual Studio Code
- with_indifferent_access
- Time.znoe.now
- Ruby on Rails
- 쿠버네티스
- docker
- change_column
- 이것이 자바다
- after_update
- RUBY
- after_save
- 주차장 시스템
- mac
- Rails
- 도커
- MySQL
- install
- 설치
- ubuntu
- 우분투
- docket
- change_column_null
- Java
- Orange Pi 3B
- 우분투 24
Archives
- Today
- Total
중고 신입이 개발해보기..
Kotlin에서 .let과 .apply의 차이점은 무엇인지? by chatGPT 본문
[질문] : Kotlin에서 .let과 .apply의 차이점은 무엇인지
[질문의도]: Kotlin의 대표적인 스코프 함수인 let과 apply의 기능적 차이와 언제 어떤 것을 사용해야 하는지 알고자 함
[응답]:
✅ 핵심 차이 요약
항목letapply
리시버 참조 | it | this |
반환값 | 블록의 마지막 결과 | 원래 객체(self) |
주 용도 | 가공/변환, null-safe 처리 | 객체 초기화, 설정 목적 |
📌 1. .let의 특징
- 블록 안에서 객체를 it 으로 참조
- 블록의 결과값을 반환
✅ 사용 예
val name = "Kotlin"
val length = name.let {
println("Name: $it")
it.length
}
// length == 6
💡 언제 사용?
- 객체의 값을 변환해서 다른 타입으로 반환할 때
- null-safe 처리: nullable?.let { ... }
📌 2. .apply의 특징
- 블록 안에서 객체를 this 로 참조 (생략 가능)
- 블록 수행 후 자기 자신(원래 객체)를 반환
✅ 사용 예
val user = User().apply {
name = "홍길동"
age = 30
}
💡 언제 사용?
- 객체 초기화 시 필드 설정을 간단하게 처리할 때
🎯 실전 비교 예
// let: 계산 후 결과값 반환
val length = "Hello".let {
println(it)
it.length
} // => length: Int
// apply: 설정만 하고 자기 자신 반환
val sb = StringBuilder().apply {
append("Hello ")
append("World")
} // => sb: StringBuilder
✅ 결론 요약
구분.let.apply
참조 방식 | it | this (생략 가능) |
반환값 | 블록의 결과 | 객체 자기 자신 |
사용 목적 | 계산/변환/체이닝/nullable 처리 | 객체 구성/초기화 |
대표 상황 | val result = obj?.let { ... } | val obj = Obj().apply { ... } |
💡 정리 키워드:
let → "변환하고 싶을 때"
apply → "설정하고 싶을 때"
둘 다 "임시 블록을 만들고 뭔가를 처리"하지만, 어떤 값을 리턴하느냐가 핵심 차이입니다.
'Code Language > Kotlin' 카테고리의 다른 글
Ruby on Rails의 belongs_to -> kotlin by chatgpt (0) | 2025.06.16 |
---|---|
Kotlin + Spring 환경에서 findById로 조회한 엔티티의 데이터를 수정하는 방법 by chatgpt (1) | 2025.06.16 |
Kotlin에서 Entity 클래스를 정의할 때 클래스 바디 내부 방식과 주 생성자 방식의 구현 차이 by ChatGPT (1) | 2025.06.10 |
kotlin command line (0) | 2025.03.10 |
kotlin - basic - 1 (0) | 2025.02.24 |
Comments