2.2.1 정수 타입
코틀린에는 정수를 표현하는 네 가지 기본 타입이 있다(표 2-2).
▼ 표 2-2 정수 타입
이름 |
크기(바이트) |
범위 |
대응하는 자바 타입 |
Byte |
1 |
-128 .. 127 |
Byte |
Short |
2 |
-32768 .. 32767 |
Short |
Int |
4 |
-231 .. 231-1 |
Int |
Long |
8 |
-263 .. 263-1 |
Long |
어떤 정수 타입 값을 표현하는 가장 간단한 리터럴은 10진수다.
val n = 12345
코틀린 1.1부터는 자바 7+와 마찬가지로 수 리터럴에 _를 넣어서 가독성을 높일 수 있다. 리터럴이 아주 큰 수를 나타낼 때 _가 유용하다.
val n = 34_721_189
리터럴 자체의 타입은 그 수를 2진수로 표현했을 때의 크기에 따라 Int일 수도 있고 Long일 수도 있다. 하지만 범위만 맞으면 수 리터럴을 크기가 더 작은 타입의 변수에 대입해도 된다.
val one: Byte = 1 // OK val tooBigForShort: Short = 100_000 // Error: too big for Short val million = 1_000_000 // OK: Int로 타입이 추론됨 val tooBigForInt: Int = 10_000_000_000 // Error: too big for Int val tenBillions = 10_000_000_000 // OK: Long으로 타입이 추론됨 val tooBigForLong = 10_000_000_000_000_000_000 // Error: too big for Long