Kotlin for Android Developers


Download 1.04 Mb.
Pdf ko'rish
bet31/79
Sana18.06.2023
Hajmi1.04 Mb.
#1588404
1   ...   27   28   29   30   31   32   33   34   ...   79
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )

11 Operator overloading
Kotlin has a fixed number of symbolic operators we can easily use on any class. The way is to create
a function with a reserved name that will be mapped to the symbol. Overloading these operators
will increment code readability and simplicity.
In order to alert the compiler we want to overload an operator, functions must be annotated with
the
operator
modifier
11.1 Operators tables
Here you can see a set of tables that include an operator and its corresponding function. A function
with that name must be implemented to enable the possibility of using the operator in a specific
class.
Unary operations
+a
a.unaryPlus()
-a
a.unaryMinus()
!a
a.not()
a++
a.inc()
a–
a.dec()
Binary operations
a + b
a.plus(b)
a - b
a.minus(b)
a * b
a.times(b)
a / b
a.div(b)
a % b
a.mod(b)
a..b
a.rangeTo(b)
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.modAssign(b)
38


11 Operator overloading
39
Array-like operations
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] = b
a.set(i_1, …, i_n, b)
Equals operation
a == b
a?.equals(b) ?: b === null
a != b
!(a?.equals(b) ?: b === null)
The
equals
operations are a bit different, because they use a more complex translation in order to
make a proper equals checking, and because they expect an exact function specification, and not
just a specific name. The function must be implemented exactly like this:
1
operator fun equals(other: Any?): Boolean
Operators
===
and
!==
do identity checks (they are
==
and
!=
in Java respectively) and can’t be
overloaded.

Download 1.04 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   ...   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling