Kotlin 运算符

Kotlin 运算符

运算符重载

kotlin运算符重载,而java不支持

参考

格式:

operator fun 参数1的类型 . 运算符函数 ( 参数2及其类型 ) : 返回值类型 {
	...
}

如,自定义矩阵类 Matrix ,并让其支持 +, -, * 操作

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无符号右移>>

转载于:https://my.oschina.net/u/181909/blog/1795500

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值