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