Kotlin

[Kotlin 기초] 변수 / Null / Type / 연산자

hyunjuuun.dev 2024. 2. 24. 22:14

 

 

코틀린에서 변수 다루기

var과 val의 차이점

var

  • variable의 약자
  • 변할 수 있는 값을 담는 변수 선언 시 사용

val

  • value의 약자
  • 변하지 않는 값을 담는 변수 선언 시 사용

Kotlin에서 nullable 변수

  • Nullable한 변수는 타입 뒤에 ?를 붙인다.

 

코틀린에서 Null 다루기

null 체크

  • null이 아닌 경우에만 호출되는 Safe call 사용
    • ex) str?.length (str이 null이면 null 리턴)

Elvis 연산자

  • str?.length ?: 0
    • str이 null인 경우 0 리턴

 

코틀린에서 Type 다루기

기본 타입

  • Byte
  • Short
  • Int
  • Long
  • Float
  • Double
  • 부호 없는 정수들

코틀린에서 기본 타입의 형변환은 자바와 다르게 명시적으로만 가능하다.

기본 타입이 아닌 경우)

is

  • java에서의 instance of

as Person

  • java에서의 (Person) obj

as Person 없이도 is 체크로 인한 스마트 캐스트를 통해 자동 형변환이 가능하다.

 

Kotlin의 특이한 타입 3가지

  • Any
  • Unit
  • Nothing

Any

  • Java의 Object (모든 객체의 최상위 타입)
  • 모든 Primitive Type의 최상위 타입도 Any
  • null을 포함하고 싶다면 Any?로 표현
  • Any에 equals / hashCode / toString 존재

Unit

  • Java의 void
  • void와 다르게 Unit은 그 자체로 타입 인자로 사용 가능

Nothing

  • 함수가 정상적으로 끝나지 않았다는 사실 표현 (정상적으로 끝나지 않는 함수를 사용할 일이 흔하지 않긴 하다)
  • 무조건 예외를 반환하는 함수 / 무한 루프 함수 등
fun fail(message: String): Nothing {
	throw IllegalArgumentException(message)
}

 

동등성, 동일성

Java

  • 동일성 비교 ==
  • 동등성 비교 equals

Kotlin

  • 동일성 비교 ===
  • 동등성 비교 == (간접적으로 equals를 호출)

코틀린에 있는 특이한 연산자

in / !in

  • 컬렉션이나 범위에 포함되어 있는지 여부 계산

a..b

  • a부터 b까지 범위 객체 생성

 

참고)

https://www.inflearn.com/course/java-to-kotlin