1. 변수
- 변동이 심한, 가변적인, 변할 수 있는 숫자를 말합니다.
- 프로그래밍에서 말하고 싶은 변수의 뜻은 가변할 수 있는 값을 저장할 수 있는 저장공간입니다.
- 프로그램을 만드는 주재료가 됩니다.
2. 변수 선언 기본 형태
var/val 변수명: 변수타입 = 초기화값
fun main() {
println("Hello, World!")
// var/val 변수명: 변수 타입 = 초기화값
var name: String = "박준용" // 변동 불가능
val age: Int = 26 // 변동 가능
val alive: Boolean = true // 변동 가능
}
val(Immutable: 불변의) - 읽기
- val 로 선언된 변수는 초기에 값을 할당하면 더이상 값을 변경할 수 없습니다.
- 읽기만 가능한 변수입니다.
var(Mutable: 변하기 쉬운) - 읽기
/쓰기
- var 로 선언된 변수는 값의 변경이 가능합니다.
- 그러나, 다른 타입의 값을 넣을 수 는 없습니다.
- 읽기/쓰기가 가능한 변수입니다.
변수명
- 변수명은 변수의 목적에 맞게 본인이 마음대로 정할 수 있습니다.
- 가끔 이미 코틀린(Kotlin)에서 사용되고 있는 예약어(ex. val , in, for, if 등)를 변수에 사용해야 될 경우가 있습니다.
- 변수명을 변경할 수도 있지만 반드시 사용해야되는 경우 ```를 변수 양쪽에 위치 시키면 됩니다.
fun main() {
val in: Int = 0 // 컴파일 에러
val `in`: Int = 0 // 정상 동작
}
컴파일 에러 Kotlin: Expecting property name or receiver type
- 숫자로 시작할 수 없습니다.
숫자로 시작할 수 없습니다.fun main() {
var 1st: Int // 컴파일 에러
var first1: Int // 정상 동작
}
변수 초기화
- 변수의 초기화 값을 넣지 않고 사용할 경우 다음과 같은 문제가 발생합니다.
fun main() {
var age: Int
println(age) // 컴파일 에러 발생
var score: Int
score = 30
println(score) // 정상 동작
}
컴파일 에러 Kotlin: Variable 'a' must be initialized
3. 변수타입
Integer types(정수형)
- 정수형을 표현하는 변수타입은 총 4가지 있습니다.
- 사이즈에 따라 다릅니다. 이는 표현할 수 있는 숫자의 범위가 다릅니다.
- 주로
Int
를 사용하나 숫자 범위를 넘게되면Long
도 같이 사용합니다.
변수 타입 | 사이즈(bits) | Min Value | Max Value |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | - 32,768 | 32,767 |
Int | 32 | -2,147,483,648 | 2,147,483,647 |
Long | 64 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
fun main() {
val one = 1 // Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1
val threeBillionUnderbar = 3_000_000_000
}
Floating-point types(실수형)
- 실수형을 표현하는 변수타입은 총 2가지 있습니다.
Float
는 표현 길이가 낮아 주로Double
을 사용합니다.
변수 타입 | 사이즈(bits) |
---|---|
Float | 32 |
Double | 64 |
val pi = 3.14 // Double
// val one: Double = 1 // Error: type mismatch
val e = 2.7182818284 // Double
val eFloat = 2.7182818284f // Float, actual value is 2.7182817
Boolean
true
or false
String
- 문자열을 담을 때 사용되는 변수타입입니다.
fun main() {
val name: String = "박준용"
}
- 문자열( String ) 사이에 변수를 사용 할 수 있습니다.
fun main() {
// 예시 1
val name: String = "박준용"
println("이름은 ${name}입니다")
// 예시 2
val age: Int = 26
val result: String = "이름은 ${name}이고 나이는 ${age}입니다"
println(result)
}
4. Null Safety
변수 선언시 변수타입 바로 뒤에 ? 를 선언하면 nullable한 변수가 됩니다.
fun main() {
var name: String = "박준용"
name = null // 컴파일 에러 발생
var nullableName: String? = null
val length = nullableName.length // 컴파일 에러 발생
}
- nullable한 변수를 사용할 때 이 변수가 null 인지 아닌지 고려하며 사용해야 합니다.
1. 조건문을 통해 null 확인하기
fun main() {
var name: String? = null
if (name != null) {
println(name.length)
}
}
2. ?. 연산자를 통해 안전하게 호출 name 이 null 이면 null 값을 반환하고 아니면 name 변수의 길이를 반환합니다.
fun main() {
var name: String? = null
println(name?.length)
}
3. ?: 엘비스 연산자(Elvis Operator) 변수가 null 일 경우 값을 지정할 수 있습니다.
fun main() {
var name: String? = null
val length: Int = name?.length ?: 0
println(length)
}
4. !! 연산자 개발자가 null 이 아니라고 강제로 지정하는 경우입니다. 사용하지 않기를 권장합니다.
fun main() {
var name: String? = null
println(name!!.length)
}
주의) 런타임에서 !! 로 지정한 변수가 null 일 경우 NullPointException 에러를 던집니다.
'Kotlin > Kotlin 입문' 카테고리의 다른 글
[Kotlin] 6. 배열 (1) | 2024.10.09 |
---|---|
[Kotlin] 5. 반복문 (0) | 2024.10.09 |
[Kotlin] 4. 조건문 (0) | 2024.10.09 |
[Kotlin] 3. 연산자 (0) | 2024.09.30 |
[Kotlin] 1. 코틀린이란? (0) | 2024.05.30 |