목차

변수

코틀린에서는 기본적으로 아래 형식처럼 변수를 선언한다.

val/var name: Type

val로 선언한 변수는 자바에서 final 키워드와 함께 선언하는 것처럼 추후에 할당한 참조의 변경을 막아야 할 때 사용하고, var키워드는 추후 객체 변경이 필요할 때 사용한다.

val은 변경 불가능한 참조를 저장하는 키워드이다. 즉, 참조 자체는 불변이지만 그 참조가 가리키는 객체의 내부 값은 변경될 수 있다.

val → value, var → variable

val languages = arrayListOf("Java")
languages.add("Kotlin")

var키워드를 사용하면 할당된 참조를 변경할 수 있지만, 변수의 타입은 고정돼 바뀌지 않는다.

var answer = 42
answer = "this is error"  // 컴파일 오류 발생

연산자

자바와 동일하게 산술 연산자(+, -, *, /, %), 관계 연산자(>, <, , , ==, ), 대입 연산자(+=, -=, *=, /=, %=), 단항 연산자(++, --), 논리 연산자(&&, ||, !), 비트 연산자(shl, shr, ushr, and, or, xor, inv)등이 있다.

추가적으로 코틀린은 고유의 연산자로 엘비스 연산자(elvis operator)를 갖고 있다.(?:)

엘비스 연산자의 좌측 항이 null일 경우 엘비스 연산자 오른쪽 값을 반환하고, 그렇지 않을 경우 좌측 항을 그대로 반환하는 연산자이다.

var name: String? = null
var notNullName: String = name ?: "new name"
// var notNullName: String = if (name != null) name else "new name"

print(notNullName)  // "new name"

엘비스 연산자를 통해 null-safe한 프로퍼티를 보장할 수 있다.