kotlin運算符重載,而java不支持html
參考java
格式:app
operator fun 參數1的類型 . 運算符函數 ( 參數2及其類型 ) : 返回值類型 { ... }
如,自定義矩陣類 Matrix ,並讓其支持 +
, -
, *
操做ide
class Matrix( val e: Array<Int> ) { override fun toString(): String = e.toList().toString() } operator fun Matrix.plus(a2: Matrix): Matrix = Matrix( e.clone() ).apply { // 矩陣加法計算過程 e.forEachIndexed{k, _ -> e[k]=this@plus.e[k]+a2.e[k] } } operator fun Matrix.minus(a2: Matrix): Matrix = Matrix( e.clone() ).apply { // 矩陣減法計算過程 e.forEachIndexed{k, _ -> e[k]=this@plus.e[k]+a2.e[k] } } operator fun Matrix.times(a2: Matrix): Matrix = Matrix( e.clone() ).apply { // 矩陣乘法計算過程 e.forEachIndexed{k, _ -> e[k]=this@plus.e[k]*a2.e[k] } } var a1 = Matrix( arrayOf(1,2,3) ) var a2 = Matrix( arrayOf(4,5,6) ) var a3 = a1 + a2 a3 = a1 - a2 a3 = a1 * a2
&
, |
, <<
, >>
等按位運算符,取代的的 位運算 函數函數 | 功能 | 等效的java運算 |
---|---|---|
and | 按位與 | & |
or | 按位或 | \ |
inv | 按位非 | ~ |
xor | 按位異或 | ^ |
shl | 左移 | << |
shr | 右移 | >> |
ushr | 無符號右移 | >> |