Kotlin有三個結(jié)構(gòu)跳躍表達式:
- return:默認返回最近的封閉函數(shù)或匿名函數(shù)
- break:中斷最內(nèi)層的封閉循環(huán)
- continue:執(zhí)行最內(nèi)層循環(huán)的下一次操作(通常指下一次循環(huán),如果條件滿足的話)
所有這些表達式都可以用作更大表達式的一部分:
val s = person.name ?: return
這些表達式的類型是Nothing類型。
break和continue至一個標簽(labels)
Kotlin中的任何表達式都可以被label關(guān)鍵字標記。標簽具有標識符的形式,后跟@符號,例如: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將跳轉(zhuǎn)至定義該標簽的右側(cè)的執(zhí)行點。由標簽修飾的continue關(guān)鍵字將會執(zhí)行被標簽修飾的循環(huán)的下一次循環(huán)。
返回至標簽(Return at Labels)
由于對字面函數(shù)、局部函數(shù)、對象表達式及Lambad表達式的不熟悉,這部分文檔暫時無法通順的翻譯。待以后知識儲備足夠的時候,能夠理解的時候再來學習,原文地址見這里。