본문으로 바로가기

단항연산자, 산술연산자

  • Java와 동일한 단항연산자, 산술연산자 제공
  • 단항 연산자 : ++
  • 산술 연산자 : + - * / %
  • 산술대입 연산자 : += -= *= /= %=

비교 연산자와 동등성, 동일성

  • 비교 연산자 : > < >= <= ==
  • 코틀린에서는 객체 비교시 비교연산자를 사용하면 자동으로 compareTo()를 호출해 준다.
    • compreTo : 기준값이 비교대상(인자)보다 크면 양수, 같으면 0, 작으면 음수.
  • 동등성(Equality) : 두 객체의 값이 같은지 여부 - 값비교
    • kotlin : ==
    • java : equals
  • 동일성(Identity) : 두 객체가 같은 객체인지 여부 - 객체비교
    • kotlin :===
    • java : ==
/* Kotlin */
val money3 = JavaMoney(1000L)
val money4 = JavaMoney(1000L)
println(money3 == money4)  // 값비교(동등성)
println(money3 === money4)  // 객체비교(동일성)
/* Java */
JavaMoney money3 = new JavaMoney(1_000L);
JavaMoney money4 = new JavaMoney(1_000L);
System.out.println(money3.equals(money4)); // 값비교(동등성)
System.out.println(money3==money4); // 객체비교(동일성)

논리연산자

  • 논리연산자 : && || ! (Java와 동일)
  • Lazy 연산 수행 (Java와 동일)

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

  • in !in : 컬렉션이나 범위에 포함되어있다. 포함되어 있지 않다.
  • a..b : a부터 b까지 범위 객체를 생성
  • a[i] : a에서 특정 Index i로 값을 가져온다.
  • a[i] = b : a의 특정 index에 값을 넣는다.

연산자 오버로딩

  • 코틀린에서는 객체마다 연산자를 직접 정의할 수 있다.
val kotlinMoney1 = KotlinMoney(1_000L)
val kotlinMoney2 = KotlinMoney(2_000L)
println(kotlinMoney1 + kotlinMoney2) 
// 결과 KotlinMoney(amount=3000)

data class KotlinMoney(
    val amount:Long
) {
    operator fun plus(other: KotlinMoney):KotlinMoney{
        return KotlinMoney(this.amount + other.amount)
    }

}

Reference

 

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) - 인프런 | 강의

이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com