kotlin 有三種結構跳轉表示式:
-- return上述表示式都可以作為更大的表示式的一部分:-- break 結束最近的閉合迴圈
-- continue 跳到最近的閉合迴圈的下一次迴圈
vals= person.name ?:
return
這些表示式的型別是 nothing type
在 kotlin 中表示式可以新增標籤。標籤通過 @ 結尾來表示,比如:abc@
,foobar@
都是有效的(參看語法)。使用標籤語法只需像這樣:
loop@ for (i in1..100)
現在我們可以用標籤實現 break 或者 continue 的快速跳**
loop@ for (i in1..100)
}
break 是跳轉標籤後面的表示式,continue 是跳轉到迴圈的下一次迭代。
在字面函式,區域性函式,以及物件表示式中,函式可以在 kotlin 中被包裹。return 允許我們返回到外層函式。最重要的例子就是從字面函式中返回,還記得我們之前的寫法嗎:
funfoo()
}
return 表示式返回到最近的閉合函式,比如foo
(注意這樣非區域性返回僅僅可以在內聯函式中使用)。如果我們需要從乙個字面函式返回可以使用標籤修飾 return :
funfoo()
}
現在它僅僅從字面函式中返回。經常用一種更方便的含蓄的標籤:比如用和傳入的 lambda 表示式名字相同的標籤。
funfoo()
}
另外,我們可以用函式表示式替代匿名函式。在函式表示式中使用 return 語句可以從函式表示式中返回。
funfoo() )
}
當返回乙個值時,解析器給了乙個參考,比如(原文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...