이번엔 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 |