Kotlin笔记-012运算符与中缀表达式

521 阅读1分钟

运算符与中缀表达式

操作符重载

一元前缀操作符

表达式等价于
+aa.unaryPlus()
-aa.unaryMinus()
!aa.not()

递增与递减

表达式等价于
a++a.inc()
a--a.dec()

算术运算符

表达式等价于
a + ba.plus(b)
a - ba.minus(b)
a * ba.times(b)
a / ba.div(b)
a % ba.rem(b)
a..ba.rangeTo(b)

“In”操作符

表达式等价于
a in bb.contains(a)
a !in b!b.contains(a)

索引访问操作符"[]"

表达式等价于
a[i]a.get(i)
a[i] = ba.set(i, b)

调用操作符

表达式等价于
a()a.invoke()
a(i)a.invoke(i)

广义赋值

表达式等价于
a += ba.plusAssign(b)
a -= ba.minusAssign(b)
a *= ba.timesAssign(b)
a /= ba.divAssign(b)
a %= ba.remAssign(b)

相等与不等操作符

表达式等价于
a == ba.equals(b)
a != b!(a.equals(b)

比较操作符

表达式等价于
a > ba.compareTo(b) > 0
a < ba.compareTo(b) < 0
a >= ba.compareTo(b) >= 0
a <= ba.compareTo(b) <= 0

中缀表达式

常用的中缀表达式有 Map 中的a to b方式

val map:Map<String,String> = mapOf("act" to "x","act2" to "y")

我们也可以自定义中缀表达式

// 使用 infix 可以自定义中缀表达式
infix fun String.double(str: String): String {
    return this + str + str
}

fun action(){
    println("Kotlin" double "Hello")
}