티스토리 뷰
📌 변수
-val: 불변성 변수
-var: 가변성 변수
val data1 = 10
var data2 = 10
fun main(){
data1 = 20 // 오류
data2 = 20 // 성공
}
타입선언
-코틀린은 정적 타이핑 언어지만, 타입 추론이 가능한 경우에는 생략이 가능하다.
-명시적으로 타입선언이 가능하다.
val data1:Int = 10
변수 초기화 미루기
1) lateinit
-lateinit 키워드를 사용하여 변수를 선언하면 초기화를 미룰 수 있다.
-2가지조건: var형태로 선언한 변수, Int, Long, Short, Double, Float, Boolean, Byte 가 아니어야 함.
lateinit var data1: Int // 오류
lateinit val data2: String // 오류
lateinit var data3: String // 성공
2) lazy키워드
-선언문 뒤에 by lazy {} 형식으로 선언되며 선언된 변수가 최초 이용되면 중괄호로 묶인 부분이 자동실행되며 그결과값이 변수의 초기값으로 설정된다.
-특징
var 프로퍼티에서 사용 불가능하다.
get(),set()이 불가능하다.
val data4: Int by lazy {
println("in lazy .....")
10
}
fun main(){
println("in main .....")
println(data4 + 10)
println(data4 + 10)
}
/* 결과
in main .....
in lazy .....
20
20
*/
타입
-기초타입객체: Int, Short, Long, Double, Float, Byte, Boolean
-문자와 문자열: Char, String
-모든 타입: Any(java = object)
-반환문이 없는 함수: Unit
-null이나 예외를 반환하는 함수(null만 대입 가능하다. ): Nothing
fun some(): Unit {
println(10+20)
}
// 반환 타입이 없는 경우에는 Unit이 생략된 것
fun some() {
...
}
컬렉션타입
-컬렉션 타입이란 여러개의 데이터를 표현하는 방법이다.
-Array, List, Set, Map 이 있다.
Array
배열을 표현하는 클래스, 배열에 접근할 때에는 대괄호를 사용하거나 set(), get()을 사용한다.
fun main(){
val data1: Array<Int> = Array(3, {0}); //크기가 3인 배열을 생성한 후 값들을 0으로 초기화
data1[0] = 10 //0번째 배열 10 삽입
data1[1] = 20 //1번째 배열 20 삽입
data1.set(2, 30) //2번째 배열 30 삽입
println(data1[0])
println(data1[1])
println(data1[2])
}
//실행결과
//10
//20
//30
배열의 타입이 기초타입이라면 Array를 사용하지 않고 각 기초타입의 배열을 나타내는 클래스를 이용할 수 있다.
ex)BooleanArray, ByteArray, CharArray, IntArray, ShortArray, LongArray, FloatArray, DoubleArray
-List, Set, Map
Collection타입 클래스는 가변(mutable)클래스와 불변(immutable)클래스로 나뉜다. 불변클래스는 초기에 데이터를 입력하면 더이상 변경이 불가하다.

-null 허용, 불허용
코틀린의 모든 변수는 객체이기 때문에 null값이 들어갈 수 있다. 변수를 선언할 때 null허용으로 하려면 타입 뒤에 물음표를 추가해야한다.
var data1: Int = 10
data1 = null // 오류
var data2: Int? = 10
data2 = null // 성공
출처:
'코틀린' 카테고리의 다른 글
| 디미터의 법칙 (0) | 2025.03.30 |
|---|---|
| 코틀린 문법(Sealed Interface) (0) | 2025.03.30 |
| 코틀린 문법(배열) (0) | 2024.08.19 |
| Kotlin에서 property, JAVA에서의 field와 property (0) | 2024.08.05 |
| 코틀린 문법(OOP문법) (0) | 2024.08.04 |
