Kotlin學習筆記 四 操作符

2021-09-25 03:34:31 字數 1772 閱讀 5351

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...