티스토리 뷰
자료형
1. 정수형
• 음수, 양수 모두 표현 가능
- Byte : 1bytes (-128 ~ +127)
- Short : 2bytes (-32,768 ~ +32,767)
- Int : 4bytes (-2,147,483,648 ~ +2,147,483,647)
- 기본적으로 가장 많이 사용하는 정수 자료형
- Long : 8bytes (-2^63 ~ +2^63 - 1)
-> Byte에서 Long으로 갈수록 표현할 수 있는 숫자의 범위가 넓다.
* 1bytes -> 8bit
- bit(비트) : 0 과 1 두 개를 표현할 수 있다.
- 비트1, 비트2
2 x 2 = 4
- 비트1, 비트2, 비트3
2 x 2 x 2 = 8
- 1bytes = 8bit = 256개의 숫자 표현
• 양수만 표현
- UByte (0 ~ 255)
- UShort (0 ~ 65535)
- UInt (0 ~ 4,294,967,296)
- ULong (0 ~ 2^64 - 1)
* 자료형을 선택할 때는 가능한 작은 자료형을 선택하는 것이 좋다.
- 앱의 크기, 성능 문제
- but 요즘에는 하드웨어가 너무 좋아져서 별 차이가 없다.
- 실제로 대부분 그냥 Int를 사용함.
2. 실수형
• Float : 4bytes
• Double: 8bytes
3. 논리형
• Boolean
• True(참), False(거짓)을 표현할 수 있다.
4. 문자형
• 한 글자를 표현할 수 있다.
ex) 'A', '가', '5', '$'
5. 문자열형
• 여러 글자를 표현할 수 있다.
ex) "안녕하세요.", "Hello", "A"
자료형 추론
1. 자료형 명시
• 자료형을 명시해주는 것이 좋다.
- var/val 변수명: 자료형 = 값
ex) var changeYes: Byte = 100
val INTEGER_BYTE: Byte = 10
val INTEGER_SHORT: Short = 10
val INTEGER_INT: Int = 10
val INTEGER_LONG: Long = 10
val REAL_FLOAT: Float = 10.0f // Float의 경우 할당하려는 값 뒤에 f를 붙여줘야 한다.
val REAL_DOUBLE: Double = 10.0 // Double은 상관 없다.
val BOOL_TRUE: Boolean = true
val BOOL_FALSE: Boolean = false
val TEXT_CHAR: Char = 'A'
val TEXT_CHAR2: Char = 'AA' // 오류 발생 : Char형은 문자가 반드시 하나만 들어가야 한다.
val TEXT_STRING: String = "안녕하세요"
val TEXT_STRING2: String = "A" // 한 글자도 상관없다.
• 명시한 자료형과 다른 자료형의 값을 넣으면 오류가 발생한다.
val INTEGER_BYTE_WRONG: Byte = 10000 // 오류 발생 : Byte 자료형이 표현할 수 있는 범위보다 큰 수
val INTEGER_BYTE_WRONG2: Byte = "안녕하세요" // 오류 발생 : 타입 미스매치 에러 발생
val TEXT_CHAR3: Char = "A" // 오류 발생 : 타입 미스매치 에러 발생
* 코틀린에서 10은 정수형, 10.0은 실수형으로 받아들인다.
val REAL_DUOBLE2: Double = 10 // 오류 발생 : 10은 정수형이므로 타입 미스매치 에러 발생
2. 자료형 생략
• 자료형을 생략할 경우 코틀린이 자료형을 추론한다.
- 정수의 경우 코틀린은 기본적으로 Int로 추론한다.
- 실수의 경우 코틀린은 기본적으로 Double로 추론한다.
val NUMBER1 = 10 // Int
val NUMBER2 = 10.0 // Double
3. 자료형 식별자
• 식별자를 사용하면 자료형 추론의 힌트가 될 수 있다.
ex) var number1 = 100 // Int로 추론
var number2 = 100L // Long으로 추론
var number3 = 0x100 // 16진수 Int형으로 추론
var number4 = 200u // UByte로 추론
* 식별자를 사용하여 추론 힌트를 주는 것보다는 자료형을 명시하는 것이 더 좋다.
참고
• 큰 숫자를 할당할 때 _로 자리수 구분을 할 수 있다.
- 어디서 나누는 지는 자유롭다.
ex) var bigNumber1: Int = 1_039_672_340
var bigNumber2 : Int = 103_9672_340
• 변수명 네이밍할 땐 이미 코틀린에서 사용중인 키워드를 사용할 수 없다.
ex) val true: Boolean = true // 오류 발생
• Any / Any?
- Any : 모든 non-null 타입의 조상 (Int, Short, ...)
- Any? : 모든 nullable 타입의 조상 (Int?, Short?, ...)
이 글은
패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'📱 Android > 💻 Kotlin' 카테고리의 다른 글
[Android/Kotlin] 6. 흐름 제어 (1) | 2022.10.04 |
---|---|
[Android/Kotlin] 5. 함수 (0) | 2022.10.04 |
[Android/Kotlin] 4. 연산자 (1) | 2022.09.30 |
[Android/Kotlin] 3. Null (1) | 2022.09.30 |
[Android/Kotlin] 1. 변수 (0) | 2022.09.29 |