一、中缀表达式
当函数只有一个参数时,可以在函数前用infix修饰。
在调用函数时,可以通过对象+函数名+参数的形式来调用
工具类Util
open class Util(var name: String) {
/**
* 是否在指定数组中
*/
open infix fun isInArray(array: Array<String>): Boolean {
array.forEach {
if (name === it) {
return true
}
}
return false
}
}
测试类
fun main() {
val array: Array<String> = arrayOf("a", "b", "c")
val util = Util("a")
println("==========使用中缀表达式调用该函数==========")
if(util isInArray array){
println("在数组中")
}else{
println("没在数组中")
}
println("==========使用常规方式调用该函数==========")
if(util.isInArray(array)){
println("在数组中")
}else{
println("没在数组中")
}
}
打印输出
==========使用中缀表达式调用该函数==========
在数组中
==========使用常规方式调用该函数==========
在数组中
二、分支表达式
1.if else表达式
fun main() {
val str = "a"
val result = if (str === "a") {
println("相等")
true//返回值会赋值给result
} else {
println("不相等")
false//返回值会赋值给result
}
println("结果:$result")
}
```kotlin
输出结果
相等
结果:true
2.when表达式
fun main() {
val str = "AAA"
val result = when (str) {
"aaa", "AAA" -> {//多个"或"条件可以用逗号","连接
println("打印aaa")
"AAA"
}
"bbb", "BBB" -> {//多个"或"条件可以用逗号","连接
println("打印bbb")
"BBB"
}
is String -> {
println("是String")
"是String"
}
else -> "CCC"
}
println("when表达式返回值:$result")
}
打印输出
打印aaa
when表达式返回值:AAA
3.try-catch表达式
fun main() {
val a=1
val b=0
val result= try {
a/b
} catch (e: Exception) {
e.printStackTrace()
-999
} finally {
println("计算完毕")
}
println("结果:$result")
}
打印输出
java.lang.ArithmeticException: / by zero
at com.alick.kotlin.C学习表达式.Try_catch表达式Kt.main(try-catch表达式.kt:14)
at com.alick.kotlin.C学习表达式.Try_catch表达式Kt.main(try-catch表达式.kt)
计算完毕
结果:-999