티스토리 뷰
Kotlin var, val, const 의 의미와 차이 한 번에 정리하기 : 불변 변수와 메모리에 올라가는 시점을 기준으로 정리하기
DevReview 2023. 2. 15. 23:14var, val, const 각각은 언제 사용되는가
Kotlin을 사용하고 있다면, var, val 및 const 키워드가 익숙할 것입니다. 이 세 가지 키워드는 Kotlin에서 변수를 선언하는 방법을 제어하는 데 사용됩니다. 이번 글에서는 Kotlin에서 var, val 및 const를 사용하는 방법과 각각의 차이점에 대해 알아보겠습니다.
var
var 키워드는 변수를 선언하는 데 사용됩니다. 변수는 값을 변경할 수 있는 데이터를 저장하는 데 사용됩니다. 변수는 선언과 동시에 초기화될 필요는 없지만, 초기화되지 않은 변수는 사용하기 전에 반드시 초기화해야 합니다. 다음은 var 키워드를 사용하여 변수를 선언하는 방법의 예입니다.
var x = 10 x = 20
이 예제에서 var 키워드를 사용하여 x 변수를 선언하고 초기값으로 10을 할당합니다. 그런 다음 x 변수의 값을 20으로 변경합니다. var로 선언된 변수는 언제든지 값을 변경할 수 있습니다.
val
val 키워드는 불변(immutable) 변수를 선언하는 데 사용됩니다. val로 선언된 변수는 값을 변경할 수 없으며, 선언과 동시에 초기화되어야 합니다. 다음은 val 키워드를 사용하여 변수를 선언하는 방법의 예입니다.
val x = 10
이 예제에서 val 키워드를 사용하여 x 변수를 선언하고 초기값으로 10을 할당합니다. val로 선언된 변수는 값을 변경할 수 없으므로, 이후에 x 변수의 값을 변경하려고 하면 컴파일 오류가 발생합니다.
const
const 키워드는 val 키워드와 유사하지만, 차이점이 있습니다. const로 선언된 변수는 값을 변경할 수 없으며, 선언과 동시에 초기화되어야 합니다. 그러나 const로 선언된 변수는 컴파일 타임 상수(constant)로 간주되므로, 런타임 시 값이 변경되지 않습니다. const는 전역 상수 또는 클래스 수준 상수로만 선언할 수 있습니다. 다음은 const 키워드를 사용하여 상수를 선언하는 방법의 예입니다.
const val PI = 3.14
이 예제에서 const 키워드를 사용하여 PI 상수를 선언하고 초기값으로 3.14를 할당합니다. const로 선언된 상수는 값을 변경할 수 없습니다.
var, val, const의 차이 알아보기
앞서 설명한 var, val, const는 Kotlin에서 변수를 선언하는 세 가지 방법입니다. 다음으로, 각각의 차이점을 살펴보겠습니다.
var vs val
var와 val의 가장 큰 차이점은 변경 가능성입니다. var로 선언된 변수는 값을 변경할 수 있지만, val로 선언된 변수는 값을 변경할 수 없습니다. 즉, val로 선언된 변수는 불변(immutable) 변수입니다. 이러한 불변 변수는 코드의 가독성을 높이고, 디버깅을 쉽게 만들어 줍니다. 따라서, 값이 변경되지 않는 변수를 선언할 때는 val 키워드를 사용하는 것이 좋습니다.
var x = 10 x = 20 // OK
val y = 10 y = 20 // 컴파일 오류
val vs const
val과 const의 차이점은 변수가 컴파일 타임 상수(constant)인지 아닌지입니다. val은 런타임 상수(runtime constant)입니다. 이는 변수가 선언과 동시에 초기화되고, 이후에 값을 변경할 수 없다는 것을 의미합니다. 하지만, val은 런타임 상수이므로, 변수의 초기화 값이 런타임에 결정됩니다.
const는 컴파일 타임 상수입니다. 즉, 변수가 선언될 때 이미 초기화되고, 이후에 값을 변경할 수 없습니다. const는 전역 상수 또는 클래스 수준 상수로만 선언할 수 있습니다. const로 선언된 변수는 컴파일 시점에 값을 결정하므로, 런타임에는 값이 변경되지 않습니다.
const val PI = 3.14
val x = PI * 2 // OK
PI = 3.14159 // 컴파일 오류
정리
Kotlin에서는 var, val, const 키워드를 사용하여 변수를 선언할 수 있습니다. var는 변경 가능한 변수, val은 불변 변수, const는 컴파일 타임 상수입니다. 이러한 키워드를 올바르게 사용하여 변수를 선언하면 코드의 가독성과 안정성을 높일 수 있습니다.
'Kotlin > Kotlin 기초' 카테고리의 다른 글
Kotlin sealed class의 사용 방법과 특징 대해 알아보기 : Kotlin 1.5.0에서의 변경 사항 (1) | 2023.02.18 |
---|---|
Kotlin apply, with, let, also, run의 차이 구현체를 중심으로 알아보기 (1) | 2023.02.17 |
Kotlin object 사용해 싱글톤 패턴 구현하기 : object, companion object는 언제 초기화 되는가? (1) | 2023.02.16 |
- Total
- Today
- Yesterday
- HTTP 301 Moved Permanently
- sealed class 1.5.0
- HTTP 400
- LocalDateTime
- REST xml
- REST API POST
- sealed class 특징
- java
- REST API GET
- Kotlin sealed class
- HTTP 201
- Android
- HTTP 401 Unauthorized
- sealed class 안정성
- kotlin
- sealed class 상속
- Kotlin sealed class 상속
- 코틀린 also
- ZonedDateTime
- REST API Plain Text
- sealed class enum
- HTTP 100 Continue
- HTTP 204
- REST API HTML
- REST API란 무엇인가?
- sealed class 사용 방법
- HTTP 404 Not Found
- 500 Internal Server Error
- REST API PUT
- REST JSON
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |