Kotlin學習之 4 3 4 返回和中止迴圈

2021-08-02 09:14:29 字數 1241 閱讀 6205

kotlin 有3中結構化的跳轉語句:

所有這些表示式都可以被用來組成更大的表示式

val s = person.name ?: return
kotlin中的任何表示式都可以被 標記成乙個標籤label,標籤由乙個識別符號和緊跟的@組成,例如:abc@,foobar@是合法的標籤命名。 想要把乙個表示式定義成標籤,只要在它簽名寫乙個標籤即可。

loop@ for (i in

1..100)

現在我們可以針對這個標籤來使用breakcontinue

loop@ for (i in

1..100)

}

乙個帶標籤的break語句,會把執行點跳轉到標籤標記的位置之後。 乙個帶標籤continue語句,會還執行迴圈的下一輪遍歷。

kotlin支援的函式語法可以讓本地函式,物件表示式和函式可以內嵌在一起。帶有標籤的return語句可以讓我們從乙個外層的函式中返回。 最終要的用例就是從乙個lambda表示式中返回。例如:

fun foo() 

}

這個return語句會從最近的函式中返回,也就是會從foo()函式中返回。(注意這種非區域性的返回只是在lambda表示式中支援傳遞給內聯函式)。如果我們需要從乙個lambda表示式中返回,我們只能先標記它,然後使用帶標籤的返回語句。

fun foo() 

}

現在它只是從lambda表示式中返回。還有時候,使用隱式標籤會更加方便:隱式標籤的名字和呼叫這個lambda表示式的函式名是一樣的。

fun foo() 

}

或者還可以把lambda表示式替換成給乙個匿名函式。乙個返回語句在乙個匿名函式中會從匿名函式中返回。

fun foo() )

}

如果需要返回值,解析器需要乙個引數,例如:

return

@a1

意味著在@a這個位置返回1, 而不是返回乙個標籤表示式(@a 1)

Kotlin語法(五) 返回和跳轉

跟其他語言類似,kotlin 有三種跳出結構方式 return 預設情況下,從最近的乙個封閉的方法或者 方法表示式跳出.break.終止最近的封閉迴圈 continue.直接進入迴圈體的下次迴圈 在kotlin中任何表示式都可以用label 標籤 來標記。label的格式是被 識別符號標記,例如 a...

Kotlin學習之委託機制

委託模式可以很好的替代實現繼承,kotlin本身支援需要零樣板 乙個類derived 可以繼承base並委託它所有的public 方法到乙個指定的類 inte ce base class baseimpl val x int base class derived b base base by b f...

Kotlin學習之資料類

kotlin學習 經常要建立一些只儲存資料的類。在這些類中,一些標準函式往往是從資料機械推導而來的。在kotlin中,這叫做資料類並標記為data。宣告乙個資料類的語法格式如下 data class 類名 繼承類和實現介面 主建構函式的引數列表必須使用val var宣告為類屬性,而且要求至少有乙個,...