kotlin尬*学 if/when 表达式。还用写20个if/e
2018-01-02 本文已影响15人
橘子周二
本篇纯代码,注释就是全部的笔记。
//if 表达式
fun ifExpression() {
print("if 表达式 :")
//类java用法
var random = Random()
var i = random.nextInt(100)
print("i = $i")
if (i % 2 == 0) {
print("i%2 == 0")
} else if (i > 50) {
print("i>50")
} else {
print("no match")
}
//使用返回值 和 类 java 三元表达式
var n = if (i in 0..50 && i % 2 == 0) i else -1
print("n = $n")
}
//when 表达式
fun whenExpression() {
print("when 表达式 :")
var random = Random()
var i = random.nextInt(100)
//类似于 java 的 switch/case 但是 分支可以是具体对象 也可以是其他表达式,以及 is in in!这类便捷操作符号
var range = when (i) {
in 1..50 -> "1>i,i<10"
2, 3, 5 -> "i = 2 ,3 ,5"
else -> "unknown"
}
print(range)
//使用when 代替 复杂的if else 链
print("使用when 代替 复杂的if else 链")
var str = "whenExpression"
var t = random.nextInt(30)
var allin = true
//使用when直接代替多重if/else,并且还能在单个分支返回不同类型的对象
var result = when {
str.contains("aa") -> "str"
t % 2 == 0 -> t
allin -> allin
else -> "unknown"
}
print(result)
}
//关于while /do while / for 优点仅在对in downTo until 的使用来达到区间循环的功能
```java