안드로이드 개발자의 창고
[12일차 Kotlin] 변수와 자료형 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 Literal(리터럴)
- 코드 작성시 값을 작성하는 문법
- 정수 : 100, 100L, 1_000_000
- 실수 : 11.11, 22.22F
- 문자 : ‘A’, ‘B’
- 문자열 : “문자열”
- 불리언 : true, false
-
Raw string : “””문자열”””
-
Nothing : 함수가 정상적으로 끝나지 않는다를 의미
-
Unit : void를 의미한다.
📖 예제 코드
fun main() {
// 정수 리터럴
println(100)
// 4byte 기억 공간에 담을 만큼의 값이면 뒤에 L을 안붙이고 범위를 넘어가면 자동으로 L을 붙여준다.
println(10000000000)
println(938_492_934_823) // _ 가 빠져 저장됨
// 실수
println(11.11)
println(11.11F)
// 문자 리터럴
// ''로 묶어주면 char 타입
println('A')
println('가')
// 문자열 리터럴
println("문자열")
// 논리 타입
println(true)
println(false)
// RowString
// 여러 줄의 문자열을 표현할 때 사용한다.
println("동해물과 백두산이\n마르고 닳도록\n하느님이 보우하사\n우리나라 만세")
println("""동해물과 백두산이
|마르고 닳도록
|하느님이 보우하사
|우리나라 만세
""".trimMargin())
}
📖 자료형
- 정수 : Long(8), Int(4), Short(2), Byte(1)
- 부호가 없는 정수형 : ULong(8), UInt(4), UShort(2), UByte(1)
- 실수 : Double(8), Float(4)
- 논리 : Boolean(1)
- 문자 : Char(2)
- 문자열 : String
📖 코틀린의 자료형은 클래스이다.
fun main(){
var data1: Int = 10
var data2: Int? = null // null 대입 가능
data1 = data1 + 10
data2 = data1.plus(10) // 객체의 메서드 이용 가능
}
- 코틀린의 모든 변수는 객체이다.
- 따라서 코틀린의 모든 타입은 객체 타입이다.
- 예) 정수를 다루는 타입인 Int는 기초 데이터 타입이 아닌 클래스이다.
- 모든 타입이 객체이므로 Null을 대입할 수 있다.
- 또한 객체의 메서드도 호출할 수 있다.
📖 변수 선언
- var / val 변수명 : 타입 = 값
- Kotlin은 변수 선언 시 val, var 두 가지 키워드를 사용한다.
- var : 선언 이후 값을 다시 저장할 수 있다.
- val : 선언 이후 값을 다시 저장할 수 없다.
- 타입 생략 시 저장하는 값에 따라 자료형이 자동으로 결정된다.
📖 예제 코드
fun main() {
var a1:Int = 100
println("a1 : ${a1}")
println("a1 : $a1") // ${ } 안에 변수를 작성할 때는 { }를 생략해도 된다.
// 변수를 선언할 때 저장할 값을 지정해주면 클래스 타입을 생략해도 된다.
// 변수에 저장하는 값을 보고 변수의 타입을 결정한다.
var a2 = 200
var a3 = 11.11
println("a2 : $a2")
println("a3 : $a3")
// var : 변수의 값을 계속 저장할 수 있다.
// val : 선언 시 변수에 값을 저장하고 그 이후에는 값을 저장할 수 없다.
var a4 = 100
val a5 = 100
println("a4 : $a4")
println("a5 : $a5")
a4 = 200
println("a4 : $a4")
// val 변수에는 값을 다시 저장할 수 없다.
a5 = 200
println("a5 : $a5") <<< 오류 발생
}
📖 Null 허용 변수
- Kotlin의 특징 중 하나는 Null 안정성이다.
- 참조 변수에 객체의 ID가 있다면 그 객체에 접근할 수 있지만 null이 있다면 객체의 ID가 없으므로 객체에 접근할 수 없다.
- null이 있는 상태에서 개발자가 객체에 접근하는 코드를 작성해 실행하면 NullPointerException이 발생한다.
- 이에, Kotlin에서는 변수에 아에 null을 저장하지 못하게 하여 반드시 변수에 객체의 ID를 담도록 강제할 수 있다.
- Kotlin은 변수를 선언 할 때 null 허용 여부를 설정할 수 있다.
- 자료형 뒤에 ?를 붙여 표시한다.
- var / val 변수명:자료형 = 값 ➡️ null을 허용하지 않는 변수
- var / val 변수명:자료형? = 값 ➡️ null을 허용하는 변수
- !! : null을 허용하는 값의 타입을 null을 허용하지 않는 타입으로 변환한다.
📖 예제 코드
fun main() {
// 변수 뒤에 ?를 붙이지 않으면 null값을 담을 수 없으며 반드시 객체의 ID를 넣어줘야 한다.
var a5:Int = null <<< 오류 발생
// 변수 뒤에 ?를 붙이면 null 값을 담을 수 있다.
var a6:Int? = null
// null을 허용하지 않는 변수에 null을 허용하는 변수의 값을 저장한다.
// !! : null을 허용하는 값의 타입을 null을 허용하지 않는 타입으로 변환한다.
var a7:Int = a6!!
println("a7 : $a7") <<< 오류 발생
// 위와 다른 방법으로 null을 확인하여 변환한다.
if(a6 != null){
var a8:Int = a6
println("a8 : $a8")
}
}
'Computer > Kotlin' 카테고리의 다른 글
[12일차 Kotlin] 반복문(Loop) (0) | 2023.05.12 |
---|---|
[12일차 Kotlin] When (0) | 2023.05.12 |
[12일차 Kotlin] 제어문 (0) | 2023.05.12 |
[12일차 Kotlin] 함수 (0) | 2023.05.12 |
[12일차 Kotlin] 기본 문법 (2) | 2023.05.11 |