Kotlin二:运算符和表达式 归纳总结
2020-02-12 本文已影响0人
大川的川

-
单目前缀运算符 比如实现负向值转换 true<-->false
运算符 +a 对应的方法 a.unaryPlus()
运算符 -a 对应的方法 a.unaryMinus()
运算符 !a 对应的方法 a.not()
var a = 20
var b = -a // 使用运算符
var c = a.unaryMinus() // 调用方法
println("a:${a},b:${b},c:${c}")// 输出a:20,b:-20,c:-20
var flag = true
var notFlag = !flag // 使用运算符
var notFlag2 = flag.not() // 使用运算符
println("notFlag:${notFlag},notFlag2:${notFlag2}")// 输出notFlag:false,notFlag2:false
-
自加和自减运算符
1.当++、--放在变量前面时,返回的是计算后的结果。执行过程如下:
--1.1先对变量调用inc()、dec()方法,并将方法返回值赋值给变量
--1.2自加或自减表达式返回变量的新值
2.当++、--放在变量后面时,返回的是临时变量的值,也就是原始值。执行过程如下:
--2.1先用一个临时变量缓存变量的值
--2.2对变量调用inc()、dec()方法,并将方法返回值赋给变量
--2.3自加或自减表达式返回临时变量的值
var a = 20
a = a++ // ++在变量后,返回值是缓存变量中的原始值
println("a = a++:${a}") // 输出20
a++ // ++在变量后,对变量调用inc()、dec()方法,并将方法返回值赋给变量
println("a++:${a}") // 输出21
a = a.inc() // 对变量调用inc()、dec()方法,并将方法返回值赋给变量
println("a.inc():${a}") // 输出22
a = ++a // 当++、--放在变量前面时,返回的是计算后的结果
println("a = ++a:${a}") // 输出23
++a // ++在变量前,对变量调用inc()、dec()方法,并将方法返回值赋给变量
println("++a:${a}") // 输出24
-
in和!in运算符
运算符a in b
对应的方法b.contains(a)
运算符a !in b
对应的方法!b.minus(a)
var str = "fkjavas.org"
println("java" in str)
val array = arrayof(24,45,100,-3)
println(100 in array)
data class Point(val x: Int, val y: Int) {
operator fun minus(target: Point): Double {
return Math.hypot((this.x - target.x).toDouble(), (this.y - target.y).toDouble())
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var p1 = Point(4, 10)
var p2 = Point(5, 15)
var distance = p1 - p2
println("p1与p2的距离为:${distance}") // 输出:p1与p2的距离为:5.0990195135927845
}