language/kotlin

[Kotlin] val과 var의 차이?

moonsun623 2023. 1. 2. 02:34
반응형

변수란?

데이터를 저장하는 메모리 공간의 이름으로 메모리 공간에 저장된 데이터를 사용하기 위해 변수를 선언해야한다.

변수는 선언 이후 값이 변한 수 있는 가변 변수(var)와 값이 변할 수 없는 불변 변수(val)로 나뉜다.

코틀린은 두 변수를 모두 지원하고 있다.

val

불변(immutable)변수로, 선언 이후 read-only 만 가능하다

var

가변(immutable)변수로, 선언 이후에도 read, write가 가능하다.

변수 선언하기

자바는 “[타입] 변수명 = 값” 의 형태로 변수를 선언한다.

int id = 1;
String language = "JAVA";

반면 코틀린은 “[val 또는 var] 변수명 = 값” 의 형태로 변수를 선언할 수 있다. 이때 val로 선언된 변수 language는 선언 된 이후 값을 변경 하려고 하면 에러가 발생한다.

val id = 1;
val language = "KOTLIN";
var projectName = "1";

language = "JAVA"; //에러발생
projectName = "2";