본문 바로가기

Kotlin IN Action

Kotlin IN Action - 변수

728x90

이번엔 Kotlin의 변수 선언에 대해 알아보자


먼저 자바의 경우는

package ch2;

import java.util.ArrayList;

public class P64 {
public static void main(String[] args) {
String testVar = "test";
testVar = "This is not test!";
final String testVal = "testVar";
// testVal = "This is not test!";
final ArrayList<String> testArr = new ArrayList<String>();
testArr.add("test1");
}
}

위와 같은 변수 선언 예제를 보았을 때 아주 간단하게 형태들을 살펴볼 수 있다.

자바의 변수 선언은


형태 이름 = 값;


이 대표적인데

먼저 testVar 같은 경우는 String 형태의 testVar 변수에 "test" 값을 넣어주고 그 밑에서 바로 다른 값으로 바꿔주는 것을 볼 수 있다.

하지만 final같은 변수에서는 값을 한번만 선언이 가능하고 변경이 불가능하다.

final이라도 내부를 건드리는 ArrayList의 add 같은 경우는 가능하다. (이 부분은 es6의 const와 똑같다)


코틀린을 보자

package ch2

fun main(args: Array<String>) {
var testVar = "test"
testVar = "This is not test!"
var testType: String = "Test"
val testVal = "testVar"
// testVal = "This is not test!"
val testArr = arrayListOf("Kotlin")
testArr.add("test1")
var testWhat = 1
// testWhat = "asdf"
}

코틀린의 변수 선언 형태는 

[var or val] [변수 이름] = 값

형태이다


타입이 오지 않는다는 점이 가장 큰 차이라고 볼 수 있다.

코틀린이라고 해서 타입을 무조건 빼는 것은 아닌데,

타입을 넣고 싶다면 testType변수 처럼 타입을 선언 가능하다.

var는 자바 코드의 testVar처럼 선언 후 값을 변경 할 수 있는 형태이다.

반대로 val은 자바 코드의 final 변수처럼 값을 변경 할 수 없는 형태이다.

testArr의 경우는 똑같다.

val 로 선언하여 값을 변경 불가하지만 내부의 add는 가능하다.


타입을 넣지 않는다고 해서 js처럼 논타입(Non-Type)언어는 아니다.

저번에 말한 것 처럼 코틀린은 정적 타입 언어이다.

testWhat을 보면 처음에 1로 선언하여 Int 타입인데

그 밑에서 "asdf", 즉 String 형태로 바꾸려 하여 오류가 나는 것을 확인할 수 있을 것이다.


그럼 다음엔 문자열 템플릿이란 것을 알아보자


반응형

'Kotlin IN Action' 카테고리의 다른 글

Kotlin IN Action - 문자열 템플릿  (0) 2018.06.22
Kotlin IN Action - 함수  (0) 2018.04.26
Kotlin IN Action - 기본형태  (0) 2018.04.25
Kotlin IN Action - 1장 요약  (0) 2018.04.23
Kotlin IN Action - 코틀린 응용  (0) 2018.04.15