参考文档:点击这里
Java 中的流程控制主要有 if
、 while/do..while
、for/foreach
、switch
,而 kotlin 流程控制语法与Java的有着较大的不同。
- if 既可以是表达式也可以是语句
val max = if (a > b) a else b
当作为表达式使用的时候
else
是必须的。
- do..while 中声明的变量或常量在 while 条件表达式中可见
do {
val y = false
...
} while (y) // y 在此处可见
- 在 kotlin 中将 for/foreach 整合为 for..in..
val array = ["java","kotlin","groovy"]
# 隐式示使用索引遍历,不能获取到索引
for (a in array) {
print(a)
}
# 显示使用索引遍历,可以获取到索引
for (i in array.indices) {
print(array[i])
}
# 显示使用索引遍历,可以获取到索引
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
在上面的例子中我们遍历的是数组,默认使用索引遍历;如果是集合类,默认会使用迭代器遍历。
- 在 kotlin 中移除 switch 使用 when 代替
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
when 语句相比于 switch ,首先是可以有返回值;其次是较为简洁的语法。