개발일지

Kotlin in A..Z (24) - 연산자 오버라이딩 본문

Kotlin (코틀린)

Kotlin in A..Z (24) - 연산자 오버라이딩

강태종 2020. 7. 18. 02:37

연산자 오버라이딩

operator 키워드를 통해 구현한다.

 

코드

class Base(var x: Int = 0) {
    operator fun plus(other: Base): Base {
        return Base(this.x + other.x)
    }

    override fun toString(): String {
        return "Base(x = $x)"
    }
}

fun main() {
    val x = Base(1)
    val y = Base(2)

    println(x + y)
}

 

결과

Base(x = 3)

연산자 종류

표현식 의미
a + b a.plus(b)
a - b a.minus(b)
a * b a.times(b)
a / b a.div(b)
a % b a.rem(b)
a..b a.rangeTo(b)
a(b) a.invoke(b)
a[i] a.get(i)
a[i, j] a.get(i, j)
a[i_1, .., i_n] a.get(i_1, ..., i_n)
a[i] = b a.set(i, b)
a[i, j] = b a.set(i, j, b)
a[i_1, ..., i_n] a.set(i_1, ..., i_n, b)
+a a.unaryPlus()
-a a.unaryMinus()
!a a.not()
a in b b.contains(a)
a !in b !b.contains(a)
a += b a.plusAssign(b)
a -= b a.minusAssign(b)
a *= b a.timesAssign(b)
a /= b a.divAssign(b)
a %= b a.remAssign(b)
a == b a?.equals(b) ?: (b === null)
a != b !(a?.equals(b)) ?: (b === null)
a > b a.compareTo(b) > 0
a < b a.compareTo(b) < 0
a >= b a.compareTo(b) >= 0
a <= b a.compareTo(b) <= 0
Comments