#변수
기본적인 변수 선언은 다음과 같다.
|
1
2
3
4
5
6
|
// 변수
val num1: Int = 30 // 타입선언 (읽기전용)
var string: String = "40" // 타입선언 (변수 변환)
// 타입 생략 가능
val num2 = 30 // 값에 따라 변경 (읽기전용)
var string2 = "40" // 값에 따라 변경 (변수 변환)
|
cs |
kotlin은 java와 다르게 자동으로 초기화가 되지 않아, 변수 선언 시 초기화는 필수로 기입해야 한다.
(함수 내에선 초기화를 안 해도 사용할 수 있다.)
|
1
2
3
4
5
|
val strA = "A"
var strB = "B"
strA = "C" // (X) 읽기전용으로 변경이 불가능하다.
strB = "D" // (O) var은 값 변경 가능
|
cs |
val로 선언된 변수는 java의 final과 같아보이지만 조금 다르다.
java의 final은 값 수정이 안되지만 kotlin은 아래와 같이 변경이 가능하다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
val strA = "A"
get() {
return if (strB == "B")
field // strA의 값
else
"C"
}
var strB = "B"
fun main() {
println("--- strA : " + strA)
strB = "D"
println("- value change : strB = " + strB)
println("--- strA : " + strA)
}
|
cs |

#null
kotlin은 변수 선언 시 null을 대입할 수 없으며, 사용해야 할 경우 변수 타입 뒤에 '?'를 추가하면 null 대입이 가능하다.
|
1
2
|
// null 대입 가능 변수
var string: String? = null
|
cs |
#상수
kotlin에서의 상수 선언은 const로 한다.
|
1
2
3
|
// 상수
const val INT_VALUE: Int = 1234
const val STRING_VALUE = "STR" // 타입생략
|
cs |
const는 class 내에선 선언할 수 없다.
댓글 영역