더북(TheBook)

리터럴에 L이나 l을 접두사로 붙이면 Long 타입이 된다.

val hundredLong = 100L       // OK: Long으로 타입이 추론됨
val hundredInt: Int = 100L   // Error: assigning Long to Int

앞에 0b(2진수)나 0x(16진수)를 붙여서 2진수나 16진수로 수 리터럴을 작성할 수도 있다.

val bin = 0b10101 // 21
val hex = 0xF9    // 249

수 리터럴의 경우 0을 표현하는 경우가 아니라면 맨 앞에 0이 올 수 없음에 유의하라. 일부 프로그래밍 언어(자바도 포함)는 0으로 시작하는 수 리터럴을 8진수로 사용하는데, 8진수가 쓸모 있는 경우는 드물고 잘못 사용하기도 쉽기 때문에 코틀린은 이를 지원하지 않는다. 이로 인해 8진수 표기법에 익숙한 개발자들의 혼동을 막기 위해 0이 앞에 붙은 수 리터럴이 금지됐다.

val zero = 0       // OK
val zeroOne = 01   // Error

-10과 같은 음수는 기술적으로는 리터럴이 아니다. 음수는 단항 음수 연산자(-)를 리터럴에 적용한 식이다.1

val neg = -10
val negHex = -0xFF

각 정수 타입에는 최솟값(MIN_VALUE)과 최댓값(MAX_VALUE)을 포함하는 상수 정의가 들어있다. 이런 상수를 사용하려면 앞에 타입 이름을 붙여야 한다.

Short.MIN_VALUE     // -32768
Short.MAX_VALUE     // 32767
Int.MAX_VALUE + 1   // -2147483648(정수 오버플로(overflow))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.