kotlin语言提供了一系列功能丰富的运算符,这些运算符包括所有的算术运算符,还包括比较运算符、逻辑运算符、区间运算符和位运算符。kotlin基本支持java的全部运算符(可能在写法上有不同),kotlin不支持三目运算符(因为kotlin可用if表达式来代替三目运算符)
kotlin的很多运算符其实等价于operator修饰的、特定函数名的函数。同时也可以作用于自定义的类,只要提供operator修饰的、特定函数名的函数即可
public operator fun plus(other: Any?): String
# 这个是+号。使用operator修饰
与java相同的运算符
- java支持的运算符包括算术运算符、赋值运算符、扩展后的赋值运算符、比较运算符、逻辑运算符,kotlin也完全支持这些运算符
- kotlin不支持三目运算符,kotlin使用if表达式来代替三目运算符
- kotlin的位运算与java的位运算也略有区别
- 注意:kotlin的运算符都是以方法形式来实现的,这些运算符都具有特定的符号(如+或者-)和固定的优先级
单目前缀运算符
运算符 |
对应的方法 |
+a |
a.unaryPlus() |
-a |
a.unaryMinus() |
!a |
a.not() |
fun unaryOperator(){
val a: Int = 20
val b = +a
val b1 = a.unaryPlus()
println("b: $b --> $a, b1: $b1 --> $a")
val c = -a
val c1 = a.unaryMinus()
println("c: $c --> $a, c1: $c1 --> $a")
val bool: Boolean = false
val bool1 = !false
val bool2 = bool.not()
println("bool1: $bool1, bool2: $bool2")
}
# b: 20 --> 20, b1: 20 --> 20
# c: -20 --> 20, c1: -20 --> 20
# bool1: true, bool2: true
自加和自减运算符
运算符 |
对应的方法 |
a++ |
a.inc() |
a– |
a.dec() |
fun selfAddAndDec(){
var a: Int = 10
println(a++)
println(a)
println(++a)
println(a)
println(a--)
println(a)
println(--a)
println(a)
}
# 10
# 11
# 12
# 12
# 12
# 11
# 10
# 10
- (++a或者–a),这种是先进行自增或自减,然后赋值
- (a++或者a–),这种是先赋值,然后自增或自减
双目运算符
表达式 |
对应方法 |
a + b |
a.plus(b) |
a - b |