티스토리 뷰

코틀린

코틀린 문법(변수)

pjm1n 2024. 8. 1. 19:43

📌  변수

-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	// 성공

 

 

 

출처:

https://velog.io/@developer_khj/Android-Kotlin-%EC%96%B8%EC%96%B4%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EB%AC%B8%EB%B2%95#-%EB%84%90-%ED%97%88%EC%9A%A9%EA%B3%BC-%EB%B6%88%ED%97%88%EC%9A%A9

 

'코틀린' 카테고리의 다른 글

디미터의 법칙  (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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함