2-1-单目运算符

前缀运算符

运算符对应的方法
+aa.unaryPlus()
-aa.unaryMinus()
!aa.not()

例子

fun main() {
val x = -5
println(+x) // 调用 x.unaryPlus(),结果是 -5
println(-x) // 调用 x.unaryMinus(),结果是 5

val b = true
println(!b) // 调用 b.not(),结果是 false
}

自加自减运算符

运算符对应的方法
a++a.inc()
a--a.dec()

++/--在变量的前后缀是有区别的,因此inc()和dec()并不完全等价于++和--

  • 当++/--在前时:

    1. 先执行inc() dec()方法, 并将方法的返回值赋值给变量

    2. 自加或自减表达式返回变量的新值

  • 当++/--在后时:

    1. 先用一个临时变量缓存变量的值

    2. 对变量调用inc()、dec()方法,并将方法返回值赋值给变量

    3. 自加或自减表达式返回临时变量的值 示例

fun main() {
var x = 5
println("初始值: $x")

// 前缀 ++
val pre = ++x // 相当于 x = x.inc(); 返回 x 的新值
println("前缀++: pre=$pre, x=$x")

x = 5 // 重新赋值
// 后缀 ++
val post = x++ // 相当于 val temp = x; x = x.inc(); 返回 temp
println("后缀++: post=$post, x=$x")
}