변수정의
자료형은 저장되는 데이터의 크기를 구분하는 기준이 되므로변수를 정의할 때 자료형을 함께 선언합니다.
그러나 코틀린의 경우 변수를 선언할 때 최초로 정된 값에 따라 자료형을 유추합니다.
이를 변수의 초기화(initialiation)이라고 합니다.
코틀린은 이 초기값에 따라 변수의 자료형을 유추하므로 자료형의 지정은 생략가능합니다.
그러므로 변수 할당시 초기값 할당 즉,변수의 초기화는 반드시 이루어져야 합니다.
코틀린에서 변수를 선언하는 방법은 두 가지로 구분됩니다.
즉, 키워드 val, var을 사용하여 변수를 지정하는데 그 내용은 다음과 같습니다.
val: 한번만 할당 가능한(읽기전용) 로컬 변수정의 키워드 (변수를 재이용할 수 없음)
val 변수명:자료형 = 값
var: 변경가능한 변수 정의 키워드 (변수를 재이용할 수 있음)
var 변수명:자료형 = 값
val 변수명:자료형 = 값
var: 변경가능한 변수 정의 키워드 (변수를 재이용할 수 있음)
var 변수명:자료형 = 값
val a:Int=1 // 즉시 할당
a
1
val b=2 // “Int” 타입으로 추론
b
2
var x=5//'int'타입으로 추론
x +=1
x
6
a
1
val b=2 // “Int” 타입으로 추론
b
2
var x=5//'int'타입으로 추론
x +=1
x
6
val에 의한 변수는 정의 후에 값을 할당할 수 있습니다.
val x=3
var re:String
if (x%2==0){re="짝수"}
else {re="홀수"}
re
홀수
var re:String
if (x%2==0){re="짝수"}
else {re="홀수"}
re
홀수
위의 경우 조건문을 직접 변수의 초기값으로 지정할 수 있습니다.
즉, 표현에 의해 값이 생성되는 expression(식)은 변수의 값으로 직접 할당할 수 있습니다.
val x=3
var re:String =if (x%2==0){"짝수"}else {"홀수"}
re 홀수
var re:String =if (x%2==0){"짝수"}else {"홀수"}
re 홀수
val에 의한 변수정의에서 그 값은 변할 수 없다고 했습니다.
그러나 수정할 수 없는 것은 값이라기 보다는 객체입니다.
val arr=arrayOf(1, 2,3)
for(i in arr){print("${i} ")}
1 2 3
arr[2]=20
for(i in arr){print("${i} ")}
1 2 20
for(i in arr){print("${i} ")}
1 2 3
arr[2]=20
for(i in arr){print("${i} ")}
1 2 20
다음의 경우는 val에 의해 array 객체를 선언할 경우
그 객체의 원소의 수정가능하지만
할당된 객체 (array 객체)자체는 수정할 수없습니다.
댓글
댓글 쓰기