通過隱式轉換來實現自定義運算子
案例:定義運算子 /% ,使得num1/%num2可以獲取到對偶,兩個元素分別為/的結果和%的結果(當然,這個/%運算子在bigint中已經實現了,這裡在int中將其實現一次)
//當使用int呼叫乙個int中不存在的方法的時候,就會來這個類中尋找該方法
implicit class
richint
(num1:int)
測試:
println(5
/%3)
println(6
/%3)
println(7
/%2)
println(7
/%7)
println(7
/%8)
println(-
7/%8
)/*結果:(1,2)
(2,0)
(3,1)
(1,0)
(0,7)
(0,-7)
*/
左結合運算子,也叫前置運算子。只需要在隱式轉換的類中新增方法unary_符號即可
案例:定義~前置運算子,使得!num 為計算小於num的奇數的和
object mytest1
implicit
class richint(i:
int)
}
左結合運算子有諸多限制和問題 6 1 2 自定義運算子
6.1.2 自定義運算子 定義自定義的運算子的方式類似於函式,使用 let 繫結。它們可以使用任何字元,可以是通常的 f 數 算符 或者是邏輯運算子 還可以是其他字元 宣告乙個運算子,要把它的名字括在括號中,這是與通常的 let 繫結的唯一區別。使用星號時要小心,因為,用於 f 多行注釋的開始。在這...
6 1 2 自定義運算子
6.1.2 自定義運算子 定義自定義的運算子的方式類似於函式,使用 let 繫結。它們可以使用任何字元,可以是通常的 f 數 算符 或者是邏輯運算子 還可以是其他字元 宣告乙個運算子,要把它的名字括在括號中,這是與通常的 let 繫結的唯一區別。使用星號時要小心,因為,用於 f 多行注釋的開始。在這...
swift 自定義運算子
除了實現標準運算子,在swift當中還可以宣告和實現自定義運算子 custom operators 新的運算子要在全域性作用域內,使用operator 關鍵字進行宣告,同時還要指定prefix infix或者 postfix限定符 code a uikit based playground for ...