Kotlin有三个结构跳跃表达式:
- return:默认返回最近的封闭函数或匿名函数
- break:中断最内层的封闭循环
- continue:执行最内层循环的下一次操作(通常指下一次循环,如果条件满足的话)
所有这些表达式都可以用作更大表达式的一部分:
val s = person.name ?: return
这些表达式的类型是Nothing
类型。
break和continue至一个标签(labels)
Kotlin中的任何表达式都可以被label关键字标记。标签具有标识符的形式,后跟@符号,例如:abc @,fooBar @是有效标签。为了标注表达式,我们仅需在其前面放上一个标签:
loop@ for (i in 1..100) {
// ...
}
如此,我们可以使用一个标签来修饰break或continue:
loop@ for (i in 1..100) {
for (j in 1..100) {
if (...) break@loop
}
}
由标签修饰的break将跳转至定义该标签的右侧的执行点。由标签修饰的continue关键字将会执行被标签修饰的循环的下一次循环。
返回至标签(Return at Labels)
由于对字面函数、局部函数、对象表达式及Lambad表达式的不熟悉,这部分文档暂时无法通顺的翻译。待以后知识储备足够的时候,能够理解的时候再来学习,原文地址见这里。