scala自定義運算子

2021-10-16 15:18:26 字數 783 閱讀 1169

通過隱式轉換來實現自定義運算子

案例:定義運算子 /% ,使得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 ...