Kotlin 運算符

Kotlin 運算符

運算符重載

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

kotlin沒有 &, |, <<, >> 等按位運算符,取代的的 位運算 函數

函數 功能 等效的java運算
and 按位與 &
or 按位或 \
inv 按位非 ~
xor 按位異或 ^
shl 左移 <<
shr 右移 >>
ushr 無符號右移 >>
相關文章
相關標籤/搜索