연산자를 다루는 방법

parkrootseok·2025년 7월 23일
0

코틀린

목록 보기
4/15
post-thumbnail

단항 / 산술 연산자

Kotlin에서 단항 연산자(++, --), 산술 연산자(+, -, /, %), 산술 대입 연산자의 사용 방법은 Java와 동일합니다.

비교 연산자

Kotlin과 Java의 비교 연산자(>, >=, <=, <)의 사용 방법은 Java와 동일하지만, 한 가지 차이점이 존재합니다. 이는 Kotlin의 경우 비교 연산자를 사용하면 자동으로 재정의한 compareTo() 메서드를 호출해 활용한다는 점 입니다. 이게 무엇을 의미하는지 코드를 예시로 살펴보겠습니다.

아래와 같이 클래스에 재정의한 compareTo() 메서드가 존재합니다.

일반적으로 Java의 경우 아래와 같이 재정의한 메서드를 직접 호출하여 비교를 수행합니다.

하지만, Kotlin은 아래와 같이 비교 연산자 사용시 자동으로 재정의한 compareTo() 메서드를 활용해 비교 연산을 수행합니다.

Kotlin에서의 동등성과 동일성

  • 동등성 : 두 객체의 값이 같은가?
    • Java는 equals() 메서드를 활용하지만, Kotlin은 == 연산자 활용
    • Kotlin에서는 == 연산자를 사용하면 간접적으로 equls() 메서드를 호출
  • 동일성 : 두 객체의 주소가 같은가?
    • Java는 == 연산자를 활용하지만, Kotlin은 === 연산자 활용

논리 연산자

Kotlin에서 논리 연산자(&&, ||, !) 사용 방법 및 Lazy 연산 수행 등 사용 방법은 Java와 동일합니다.

Kotlin에 있는 특이한 연산자

Kotlin에는 in, !in, a..b 등 Java에 존재하지 않는 특이한 연산자가 존재합니다. 각 연산자가 수행하는 동작은 아래와 같습니다.

  • in, !in
    • 컬렉션이나 범위에 포함되어 있는지 (or 없는지)
  • a..b
    • a부터 b까지 범위를 가지는 객체를 생성

연산자 오버로딩

Kotlin에서는 operator 키워드를 활용해 객체마다 연산자를 직접 정의할 수 있습니다. 이는 예시를 통해 살펴보겠습니다.

아래와 같이 operator 키워드를 활용해 + 역할을 수행하는 메서드를 정의한 클래스가 있습니다.

2개의 Money 클래스 가진 값에 대한 더하기 연산을 수행하기 위해선 Java의 경우 아래와 같이 코드를 작성합니다.

하지만, Kotlin에서는 아래와 같이 + 연산자를 활용해도 자동으로 plus() 메서드를 호출하여 동일한 동작을 수행합니다.

profile
동료들의 시간과 노력을 더욱 빛내줄 수 있는 개발자가 되고자 노력합니다.

0개의 댓글