1. 程式人生 > >android kotlin基礎(四)-返回和跳轉

android kotlin基礎(四)-返回和跳轉

Kotlin 有三種結構化跳轉表示式:

return。預設從最直接包圍它的函式或者匿名函式返回。
break。終止最直接包圍它的迴圈。
continue。繼續下一次最直接包圍它的迴圈。

Break 和 Continue 標籤
在 Kotlin 中任何表示式都可以用標籤(label)來標記。 標籤的格式為識別符號後跟 @ 符號,例如:[email protected][email protected]都是有效的標籤。 要為一個表示式加標籤,我們只要在其前加標籤即可。

[email protected] for (i in 1..100) {
    // ……
}
loop@ for (i in 1..100) {
    for (j in 1..100) {
        if (……) break@loop
    }
}

標籤限制的 break 跳轉到剛好位於該標籤指定的迴圈後面的執行點。 continue 繼續標籤指定的迴圈的下一次迭代。
標籤處返回
Kotlin 有函式字面量、區域性函式和物件表示式。因此 Kotlin 的函式可以被巢狀。 標籤限制的 return 允許我們從外層函式返回。 最重要的一個用途就是從 lambda 表示式中返回。回想一下我們這麼寫的時候:

fun foo() {
    ints.forEach {
        if
(it == 0) return print(it) } }

這個 return 表示式從最直接包圍它的函式即 foo 中返回。 (注意,這種非區域性的返回只支援傳給行內函數的 lambda 表示式。) 如果我們需要從 lambda 表示式中返回,我們必須給它加標籤並用以限制 return。

fun foo() {
    ints.forEach lit@ {
        if (it == 0) return@lit
        print(it)
    }
}

現在,它只會從 lambda 表示式中返回。通常情況下使用隱式標籤更方便。 該標籤與接受該 lambda 的函式同名。

fun foo() {
    ints.forEach {
        if (it == 0) return@forEach
        print(it)
    }
}

或者,我們用一個匿名函式替代 lambda 表示式。 匿名函式內部的 return 語句將從該匿名函式自身返回

fun foo() {
    ints.forEach(fun(value: Int) {
        if (value == 0) return
        print(value)
    })
}

當要返一個回值的時候,解析器優先選用標籤限制的 return,即
[email protected] 1
意為“從標籤 @a 返回 1”,而不是“返回一個標籤標註的表示式 (@a 1)”。

相關推薦

android kotlin基礎()-返回

Kotlin 有三種結構化跳轉表示式: return。預設從最直接包圍它的函式或者匿名函式返回。 break。終止最直接包圍它的迴圈。 continue。繼續下一次最直接包圍它的迴圈。 Break 和 Continue 標籤 在 Kotlin 中任何表示

Kotlin 從學習到 Android 第五章 返回

在 Kotlin 中,有三種返回和跳轉語句: return 從最近的一個封閉函式或匿名函式中返回; break 跳出最近的封閉迴圈; continue 繼續執行最近封閉迴圈的下一步; 上面這三個表示式也能夠作為其他表示式的一部分: val s = pe

單頁面添加返回動畫(仿app) 只對單頁面有用,我用的是angualr,有不會的可以私信問我。

hist page func margin consola color -s tar pla p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 } p.p2 { mar

Android 內容訪問者 到通訊錄頁面獲取資訊

內容解析者ContentResolver 使用ContentResolver呼叫ContentProvider提供的介面,操作資料當外部應用需要對ContentProvider中的資料進行新增、刪除、修改和查詢操作時,可以使用ContentResolver 類來完成,

Xcode 4.3 StoryBoard 基礎 事件處理

剛學iOS 就直接用 xcode 4.3  頭瞬間大了  不過學了 之後發現比之前的xib 方便好多也滿順手  只是網路上的教程不多 。 下面是頁面進行跳轉的方法 頁面上跳轉 一般有兩種   一種是 用view 當事件源。 比如上圖 按住control 點選button

web開發模式小結:頁面亂碼

ati 字符 -- 默認 htm *** 亂碼 控制 ram 本文由付老師總結書寫 java開發模式: (1)第一種開始模式:javaBean+jsp : 優點:可以為web程序在jsp中減少java代碼量 適用於該開發模式的

C Primer Plus學習筆記(七)- C 控制語句:分支

prim class wid int 但是 count 跳轉 ++ idt if 語句: if 語句被稱為分支語句(branching statement)或選擇語句(selection statement) if 語句的通用形式: if (expression)

一個日誌模板,從traceback打印異常受啟發做的模板,可被pycharm esclip sublime等ide識別

-c http esc pip 支持 pyc bubuko info 格式 之前發過日誌,再增加一種模板。logging.Formatter(‘%(asctime)s - %(name)s - File "%(pathname)s", line %(lineno)d, in

第 7 章 C控制語句:分支

7.1 if 語句 if 語句被稱為分支語句或選擇語句,其一般形式為: if(expression) statement 若 expression 為真,執行 statement;否則,跳過該語句。statement 可以是單個語句也可以是複合語句。 7.2 在if 語句中新

Kotlin基礎之區間型別轉換

fun main(args: Array<String>) { // 1.區間可以使用.. 表示, 注意..在使用的時候要保證起始值要小於結束值 // 輸出1 2 3 4 for (i in 1..4) { println(i) }

Android 應用在後臺時, Activity 會自動切換應用至前臺

本部落格 demo 見:demo。 平常用手機的時候經常碰到這種情況,用首屏廣告舉個栗子~很多應用都會有首屏廣告 activity A,假設此應用是 app C,如果此時要使用別的應用,就會使得 app C 在後臺執行。可是當 

Ionic建立頁面

1.建立頁面:ionic g page news 2.<button (click)="goNews()"></button> 3.news.ts import { NewsPage } from '../pages/news/news'; goNe

web端 - 返回上一步,點選返回上個頁面 JS

1.方法一: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script>

web端 - 返回上一步,點擊返回上個頁面 JS

href 返回 oca cat font color 頁面 span web 1.方法一: <script language="javascript" type="text/javascript"> window.location.href="log

Android學習筆記——Activity之間的(五)

1:使用Intent(意圖)的方式實現Activity跳轉 (1)MainActivity.java: public class MainActivity extends Activity { private Button startOther; @Override pro

JAVA語言基礎——(三)語句、陣列

Java程式語句執行的順序包括4種基本控制結構: (1)順序結構; (2)選擇結構:if語句和switch語句; (3)迴圈結構:for、while、do……while、for each; (4)異常處理邏輯結構。 一、跳轉語句 跳轉語句用於無條件地轉移控制。使用跳轉語句執行分支,該

c++基礎():intstring及陣列預設值

使用java時,感覺字串轉換很方便,因為已經做了很好的封裝。然而,在c++中,如果像將一個int轉乘string,就需要注意一些... int轉string std::string str = "s" + 0; 如果在java中, 我們這樣寫很容易就

第七章-分支

字元測試函式 在ctype.h標頭檔案中 (1) isxdigit() 是否是十六進位制數字,即 “0123456789ABCDEF” (2) isdigit() 是否是是數字,即 “0123456789” (3) isalpha() 是否是英文字母

Android開發之Activity的建立及傳值

在Android系統的江湖中有四大元件:活動(Activity), 服務(Service), 廣播接收器(Broadcast Reciver)和內容提供者(Content Provider)。今天所介紹的就是Android開發中的四大元件之一:Activity,其他那三大元件

PHP基礎知識之頁面

一.header指令頁面跳轉 1.header("location:regieter.html");//不友好直接跳轉到那個頁面 2.header("refresh:3;url=register.html");//延遲3秒頁面跳轉 die("非法訪問,請訪問註冊頁面");