Variables(변수)
- 값을 저장, 참조할 수 있음
- 모든 변수는 기본적으로 Non-Nullable
- Nullable이 되기 위해서는 타입 뒤에 ? 기호를 붙여 Nullable임을 명시
변수 선언 및 null 허용 변수 사용 예시
// var : 같은 타입의 값으로 변경 가능
var number1 = 0
var number2: String // 초기화 없이 선언 가능, 타입 명시 필수 (단, 초기화 하지 않으면 사용 불가)
number1 = 10
// number1 = "hello" // X, Type mismatch: inferred type is String but Int was expected
// println(number2) // X, Variable 'number2' must be initialized
// val : 값 변경 불가, 초기화 필수
val name: String = "yoyo" // 타입지정, 초기화
val age = 10 // 타입생략, 초기화
// age = 100 // X, Val cannot be reassigned
// null 허용 - null 값이 할당된 변수는 사용할 때마다 null 체크 필요
var nullable: String? = null
// null 허용 변수 사용 예시
if (nullable != null) { /* 실행 코드 */ }
println(nullable?.length) // null
println(nullable ?: "empty") // empty
// println(nullable.length) // X, Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?
// println(nullable!!.length) // X, NullPointerException
nullable = "hello"
println(nullable?.length) // 5
println(nullable ?: "empty") // hello
println(nullable!!.length) // 5
- ? (=세이프 콜 연산자 or 안전 호출 연산자) : null이면 null반환 아니면 .이후(우측) 실행
- ?: (=엘비스 연산자) : null이면 기본값(우측) 반환
- !! (=확정 연산자) : null이 아님을 확신할 때 사용, null이면 NullPointerException 발생
기본 데이터 타입(자료형)
구분 | 테이터타입 | 설명 | 값의 범위 |
숫자형 |
Double
|
64비트 실수
|
-1.7E+308의 근삿값 ~ 1.7E+308의 근삿값 Decimal digits(소수점 아래) : 15 ~ 16 |
Float
|
32비트 실수
|
-3.4E+38의 근삿값 ~ 3.4E+38의 근삿값
Decimal digits(소수점 아래) : 6 ~ 7 |
|
Long
|
64비트 정수
|
-9,223,372,036,854,775,808 (-2^63)
~ 9,223,372,036,854,775,807 (2^63-1) |
|
Int
|
32비트 정수
|
-2,147,483,648 (-2^31)
~ 2,147,483,647 (2^31-1) |
|
Short
|
16비트 정수
|
-32,768 ~ 32,767
|
|
Byte
|
8비트 정수
|
-128 ~ 127
|
|
문자형
|
Char
|
1 개의 문자
|
‘글’ (외따옴표)
|
String
|
여러 개의 문자
|
“여러 개의 문자” (쌍따옴표)
|
|
불리언형
|
Boolean
|
true, false
|
true 또는 false
|
- 정수형 값의 기본 타입 : Int (값의 끝에 L 또는 l을 붙이면 Long)
- 실수형 값의 기본 타입 : Double (값의 끝에 F 또는 f를 붙이면 Float)
- 정수형 변수에 실수형 값 입력 불가 (형 변환 후 입력 가능)
'Kotlin > Kotlin문법' 카테고리의 다른 글
[Kotlin 문법] 함수 (0) | 2024.04.23 |
---|---|
[Kotlin 문법] 반복문 (1) | 2024.04.19 |
[Kotlin 문법] 배열(Array), 리스트(List), 셋(Set), 맵(Map) (0) | 2024.04.19 |
[Kotlin 문법] 조건식(if, when) (0) | 2024.04.14 |