자료형
기본 자료형
- 가공되지 않은 순수한 자료형: 프로그래밍 언어에 내장된 자료형
- java: boolean, char, int, double 등 논리형, 문자형, 정수형, 실수형
- kotlin: X
참조형 자료형
- 동적 공간에 데이터를 둔 다음에 참조하는 자료형
- java: String, Date, Class, Interface, Enum 등
- kotlin: 모든 자료형
- null 값을 안전하게 처리하기 위한 설계의 일환
- 정수형
- 부호가 있는 정수형과 없는 정수형으로 나뉨
- 부호가 없는 자료형은 실험적인 기능으로 개발에 주의가 필요
Byte 1 -128 ~ 127 Short 2 32768 ~ 32767 Int 4 2147483648 ~ 2147483647 Long 8 9223372036854775808 ~ 9223372036854775807 UByte 1 0 ~ 255 UShort 2 0 ~ 65535 UInt 4 0 ~ 4294967295 ULong 8 0 ~ 18446744073709551615 - 실수형자료형 크기 (Byte) 범위
Float 4 1.4E-45 ~ 3.4028235E38 Double 8 4.9E-324 ~ 1.7976931348623157E308 - 그 외 자료형자료형 설명
Boolean 논리 자료형으로 true 또는 false를 반환함 Char 문자 자료형으로 작은 따옴표('') 사이 한 글자를 저장함 ex)'a', '가', '1' 등 String 문자열 자료형으로 큰 따옴표("") 사이의 문자들을 저장함 ex)"abcd", "가나다라", "1234" 등
변수
변수 선언
- val
- value의 약자
- 불변형(immutable) 변수
- 읽기만 가능한 변수
- java의 final
- var
- variable의 약자
- 가변형(mutable) 변수
- 읽기와 쓰기가 가능한 변수: 선언 후 다른 값으로 수정 및 연산을 통한 변경 가능
변수 선언 규칙
- 변수는 숫자로 시작하면 안된다.
- 변수의 이름은 while, if, when 등과 같이 코틀린 내부에서 사용되는 키워드를 사용할 수 없다.
- 변수의 이름은 사용 용도에 따라 의미 있는 단어를 사용한다.
- 여러 단어를 사용하여 변수 이름을 만들 경우 카멜 표기법을 사용한다.
- 카멜 표기법: 낙타 표기법
- 첫 글자를 대문자로 표기하는 명명법으로 첫 단어의 첫 글자는 소문자로 표기
- 일반 변수, 함수명에 사용
- 파스칼 표기법
- 첫 단어의 첫 글자도 대문자로 표기
- 클래스, 인터페이스 등의 이름에 사용
- 카멜 표기법: 낙타 표기법
변수 자료형
- 변수 선언 시 값을 할당하면 자료형을 자동으로 유추
- 자료형을 명시할 수도 있음
val name: String = "Kotlin" // String 타입으로 명시
var age = 23 // Int 타입으로 자동 유추
- 정수형은 보통 Int형으로 추론되므로 범위에 따라 지정이 필요
val long = 123L // Long형
val num = 0X0F // 0x를 사용하여 16진 표기 Int형
val num2 = 0b00101 // 0b를 사용하여 2진 표기 Int형
- 부호가 없는 자료형은 값에 u 식별자로 구분
val uNum1: Byte = 200u
val num2: UShort = 40000u
val num3 = 46298u // UInt형
val unum: uLong = 32890uL
- 언더스코어를 사용하여 자릿값 구분소수점의 이동은 숫자 오른쪽에 e 혹은 E와 함께 가수를 제외한 지수 입력
val Enum = 3.14e-2 // 0.0315
val enum2 = 3.14E2 // 314 ( +기호는 생략 가능)
'개발새발 > 코틀린' 카테고리의 다른 글
[코틀린/Kotlin] 상속과 인터페이스/추상클래스 (2) | 2025.08.13 |
---|---|
[코틀린/Kotlin] 함수 및 클래스 구조 (1) | 2025.08.12 |
[코틀린/Kotlin] 조건문과 반복문 (2) | 2025.08.11 |
[Kotlin] 코틀린의 자료형 (데이터 타입) (2) | 2024.01.03 |
[Kotlin] Kotlin, JAVA랑 무엇이 다를까? (0) | 2023.09.06 |