天天看點

kotlin學習筆記——操作符

這是之前看到别人整理的一篇,覺得挺全面放進筆記裡了,不過原文出處記不起來了。。。。

Kotlin學習筆記系列:http://blog.csdn.net/column/details/16696.html

一進制操作符

操作符 函數
+a a.unaryPlus()
-a a.unaryMinus()
!a a.not()
a++ a.inc()
a– a.dec()

二進制操作符

操作符 函數
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 a.contains(b)
a !in b !a.contains(b)
a -= b a.minusAssign(b)
a *= b a.timesAssign(b)
a /= b a.divAssign(b)
a %= b a.modAssign(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] = b a.set(i_1, …, i_n, b)

等于操作符

操作符 函數
a == b a?.equals(b) ?: b === null
a != b !(a?.equals(b) ?: b === null)

相等操作符有一點不同,為了達到正确合适的相等檢查做了更複雜的轉換,因為要得到一個确切的函數結構比較,不僅僅是指定的名稱。方法必須要如下準确地被實作: 

operator fun equals(other: Any?): Boolean

  操作符===和!==用來做身份檢查(它們分别是 Java中的==和!=),并且它們不能被重載。

函數調用

方法 調用
a(i) a.invoke(i)
a(i, j) a.invoke(i, j)
a(i_1, …, i_n) a.invoke(i_1, …, i_n)