Program entry point 만들기
코틀린에서 프로그램의 시작점인 main 함수를 만들기 위해서는 아래와 같이 선언할 수 있습니다. Java에서는 class를 만들고 클래스 내부에 public static void... 와 같은 형태로 선언해야 했지만 코틀린에서는 클래스를 만들 필요 없이 아래와 같이 선언하는 것만으로도 entry point를 만들 수 있습니다.
fun main() {
println("Hello Eric!")
}
변수 선언
변수를 선언할 때 var, val 두가지 선언 방법을 선택해서 사용할 수 있습니다. 기본적으로 모든 변수는 선언과 동시에 초기화를 해주어야 합니다. 초기화를 하지 않고 변수를 사용하려고 할 시에는 컴파일 에러가 발생하며, 이로 인해 의도하지 않은 NullPointerException을 방지할 수 있습니다.
fun main() {
var name: String
println(name) // Compile ERROR!
}
var
변수를 선언한 수, 해당 변수의 값을 변경할 수 있습니다.
fun main() {
var variable = "aaa"
val value = "bbb"
variable = "ccc"
value = "ddd" // Compile ERROR!
}
val
변수를 선언한 후, 해당 변수를 read-only 상태로 만듭니다. 선언 시 할당한 값은 다른 값으로 치환할 수 없습니다.
Java의 final 키워드를 붙인 변수와 동일하게 작동합니다.
자료형
kotlin에도 기본형, 참조형 자료형이 존재합니다. 다만, 프로그래머가 직접 기본형으로 자료형을 지정해주는 것이 아니라 컴파일러가 성능 최적화를 위하여 변경시켜줄 때 기본형 자료형이 사용됩니다. 프로그래머가 명시적으로 선언할 수 있는 자료형은 모두 참조형 자료형입니다.
자료형 | 크기 | 타입 |
Byte | 1 byte | 정수 |
Short | 2 byte | 정수 |
Int | 4 byte | 정수 |
Long | 8 byte | 정수 |
Float | 4 byte | 실수 |
Double | 8 byte | 실수 |
Char | 2 byte | 문자 (숫자가 아님!) |
String | auto | 문자열 |
java에서는 char 기본형 자료형이 숫자로 인식되지만, kotlin에서 Char은 문자로 인식된다는 차이점이 있습니다.
변수 선언시 자료형을 명시적으로 선언할 수 있습니다. 자료형은 `변수명 :자료형`으로 선언해 줄 수 있습니다.
fun main() {
var name: String = "Eric"
var age: Int = 26
}
변수의 자료형을 명시적으로 선언하지 않아도 코틀린에서는 대입하는 값의 타입을 계산하여 자동으로 변수의 타입을 할당하여줍니다. 아래 예제는 위 코드와 동일하게 변수의 타입을 할당하여줍니다.
fun main() {
var name = "Eric" // String
var age = 26 // Int
}
만약 변수에 Null을 허용하도록 만들고 싶다면, 자료형을 명시적으로 선언해준 후 `?` 키워드를 사용하여 Null을 허용하도록 만들 수 있습니다. 이때 해당 변수는 NullPointerException이 발생할 수 있는 상태가 되니 `?` 키워드는 꼭 필요한 경우에 엄격하게 사용하는 것이 좋습니다.
fun main() {
var name: String? = null
}
typealias
생성하는 자료형의 별칭을 선언할 수 있습니다. 복잡한 클래스명과 같이 길어서 매번 써주기 번거롭고 코드의 가독성을 떨어뜨릴 수 있는 경우 이 typealias가 유용합니다. `typealias [별칭] = [타입]` 의 형태로 선언할 수 있습니다.
typealias CustomType = String
fun main() {
var name: CustomType = "Eric"
}
'Kotlin' 카테고리의 다른 글
[Kotlin] 프로그래머스 크레인 인형뽑기 게임 (0) | 2020.12.18 |
---|
댓글