kotlin學習筆記(六)

2021-08-01 13:09:23 字數 1335 閱讀 8056

kotlin 有三種結構跳轉表示式:

-- return

-- break 結束最近的閉合迴圈

-- continue 跳到最近的閉合迴圈的下一次迴圈

上述表示式都可以作為更大的表示式的一部分:

val

s= person.name ?:

return

這些表示式的型別是 nothing type

在 kotlin 中表示式可以新增標籤。標籤通過 @ 結尾來表示,比如:abc@foobar@都是有效的(參看語法)。使用標籤語法只需像這樣:

loop@ for (i in1..

100)

現在我們可以用標籤實現 break 或者 continue 的快速跳**

loop@ for (i in1..

100)

}

break 是跳轉標籤後面的表示式,continue 是跳轉到迴圈的下一次迭代。

在字面函式,區域性函式,以及物件表示式中,函式可以在 kotlin 中被包裹。return 允許我們返回到外層函式。最重要的例子就是從字面函式中返回,還記得我們之前的寫法嗎:

fun

foo()

}

return 表示式返回到最近的閉合函式,比如foo(注意這樣非區域性返回僅僅可以在內聯函式中使用)。如果我們需要從乙個字面函式返回可以使用標籤修飾 return :

fun

foo()

}

現在它僅僅從字面函式中返回。經常用一種更方便的含蓄的標籤:比如用和傳入的 lambda 表示式名字相同的標籤。

fun

foo()

}

另外,我們可以用函式表示式替代匿名函式。在函式表示式中使用 return 語句可以從函式表示式中返回。

fun

foo() )

}

當返回乙個值時,解析器給了乙個參考,比如(原文when returning a value, the parser gives preference to the qualified return, i.e.):

return@a 1

表示 「在標籤@a返回1」 而不是返回乙個標籤表示式(@a 1)

命名函式自動定義標籤:

foo outer() 

}

Kotlin筆記(六)類

class 類名 類頭 指定其型別引數 主 建構函式等 class person constructor firstname string 沒有類頭 class person 沒有類頭類體 class person 建構函式 class person constructor firstname st...

kotlin學習筆記

屬性委託在單獨一頁中講 屬性委託。委託模式已經證明是實現繼承的乙個很好的替代方式,而 kotlin 可以零樣板 地原生支援它。derived類可以通過將其所有公有成員都委託給指定物件來實現乙個介面base inte ce base class baseimpl val x int base clas...

Kotlin學習筆記

該系列文章是本人梳理kotlin基礎知識所作,時間倉促可能會有不足,歡迎指正!kotlin學習筆記 1 基礎語法 kotlin學習筆記 2 基本資料型別,字串與陣列 kotlin學習筆記 3 條件控制與迴圈控制 kotlin學習筆記 4 容器 kotlin學習筆記 5 泛型和高階函式應用 kotli...