kotlin中一元操作符分為一元字首操作符和遞增與遞減操作符
這些操作符以及所有其他操作符都針對基本型別做了優化,不會為它們引入函式的呼叫:
inc() 和 dec() 函式返回乙個值,它用於賦值給使用++ 或 – 操作的變數。
計算表示式的步驟是:
在kotlin中所有算數運算子的本質,均是呼叫了它們對應的函式
注意:%運算 ,自 kotlin 1.1 起支援 rem 運算子。kotlin 1.0 使用 mod 運算子,mod 運算子在kotlin 1.1 中被棄用。
data class counter(val dayindex: int)
}
b.contains(a)函式: 用來判斷在b中是否包含a,返回值為布林型別
方括號轉換為呼叫帶有適當數量引數的 get 和 set 函式。
表示式含義
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)
圓括號則轉換為呼叫帶有適當數量引數的 invoke函式。
表示式含義
a()a.invoke()
a(i)
a.invoke(i)
a(i, j)
a.invoke(i, j)
a(i_1, ……, i_n)
a.invoke(i_1, ……, i_n)
對於復合賦值操作,先進性邏輯運算,再進行賦值
表示式含義
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)
注意:賦值在 kotlin 中不是表示式。
這些操作符只使用函式 equals(other: any?): boolean,可以覆蓋它來提供自定義的相等性檢測實現。不會呼叫任何其他同名函式(如 equals(other: foo))。
表示式含義
a == b
a?.equals(b) ?: (b === null)
a != b
!(a?.equals(b) ?: )
注意:=== 和 !==(同一性檢查)不可過載,因此不存在對他們的約定。
這個 == 操作符有些特殊:它被翻譯成乙個複雜的表示式,用於篩選 null 值。
null == null 總是 true,
對於非空的 x,x == null 總是 false 而不會呼叫 x.equals()。.
所有的比較都轉換為對 compareto 的呼叫,這個函式需要返回 int 值
表示式含義
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學習 集合操作符之總數操作符
原集合 val list num arraylist arraylistof 1,2,3,5,6,7,8 1.any 只要有乙個符合就返回true 操作符 val any list num.any 結果 any true 2.all 集合中所有元素都滿足函式才返回true 操作符 val all l...
Kotlin常用操作符
如果 左邊表示式非空,elvis操作符就會返回左邊的結果,否則返回右邊的結果。請注意,僅在左側為空的時候,右側的表示式才會計算 val a b?length?1 等同於 val a int if b null b.length else 1當使用 as 轉型的時候,可能會經常出現 classcast...
Kotlin常用操作符
如果 左邊表示式非空,elvis操作符就會返回左邊的結果,否則返回右邊的結果。請注意,僅在左側為空的時候,右側的表示式才會計算 val a b?length?1 等同於 val a int if b null b.length else 1當使用 as 轉型的時候,可能會經常出現 classcast...