Kotlin有三個(gè)結(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至一個(gè)標(biāo)簽(labels)
Kotlin中的任何表達(dá)式都可以被label關(guān)鍵字標(biāo)記城看。標(biāo)簽具有標(biāo)識(shí)符的形式女气,后跟@符號(hào),例如:abc @测柠,fooBar @是有效標(biāo)簽炼鞠。為了標(biāo)注表達(dá)式缘滥,我們僅需在其前面放上一個(gè)標(biāo)簽:
loop@ for (i in 1..100) {
// ...
}
如此,我們可以使用一個(gè)標(biāo)簽來(lái)修飾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í)行點(diǎn)簇搅。由標(biāo)簽修飾的continue關(guān)鍵字將會(huì)執(zhí)行被標(biāo)簽修飾的循環(huán)的下一次循環(huán)完域。
返回至標(biāo)簽(Return at Labels)
由于對(duì)字面函數(shù)、局部函數(shù)瘩将、對(duì)象表達(dá)式及Lambad表達(dá)式的不熟悉吟税,這部分文檔暫時(shí)無(wú)法通順的翻譯。待以后知識(shí)儲(chǔ)備足夠的時(shí)候姿现,能夠理解的時(shí)候再來(lái)學(xué)習(xí)肠仪,原文地址見這里。