Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- LiveData
- onLayout
- ViewModel
- notification
- Android
- BOJ
- recyclerview
- Behavior
- CoordinatorLayout
- kotlin
- activity
- 알림
- lifecycle
- room
- DataBinding
- Algorithm
- View
- AppBarLayout
- CustomView
- HTTP
- 코틀린
- hilt
- sqlite
- CollapsingToolbarLayout
- onMeasure
- Navigation
- 알고리즘
- Coroutine
- 안드로이드
- 백준
Archives
- Today
- Total
개발일지
Kotlin in A..Z (24) - 연산자 오버라이딩 본문
연산자 오버라이딩
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 |
'Kotlin (코틀린)' 카테고리의 다른 글
Kotlin in A..Z (26) - 상, 하위 형식의 가변성 (0) | 2020.07.19 |
---|---|
Kotlin in A..Z (25) - 제네릭 (0) | 2020.07.19 |
Kotlin in A..Z (23) - 열거형 클래스, 실드 클래스 (0) | 2020.07.17 |
Kotlin in A..Z (22) - 내부 클래스 (0) | 2020.07.17 |
Kotlin in A..Z (21) - 데이터 클래스 (0) | 2020.07.17 |
Comments