Kotlin 中的 return、break 和 continue
2017-06-24 16:49
477 查看
地址:http://kotlinlang.org/docs/reference/returns.html
日期:2017年 06月 24日 星期六
译者:Linky
—— return
—— break
—— continue
所有这三个表达式都可以作为更大表达式的一部分:
这些表达式的类型是 Nothing type
例如
现在,我们可以使用 label 来限制一个 break 或者一个 continue 语句:
break 将跳转到循环结束后的下一行作为执行入口,continue 将继续执行这个循环的下一个迭代。
一个 lambda 表达式中返回。回忆一下,当我们写这个的时候:
return 表达式将从最外层函数中返回,例如
给它加上标签。
现在它将仅仅从 lambda 表达式中返回。同样情况下,使用 隐式标签会更方便一点,这个标签
和向 lambda 表达式传入的 函数有相同的名字。
此外,我们还可以用 匿名函数 来替换 lambda 表达式,匿名函数中的 return 语句将只退出
该匿名函数。
当返回一个值时,解析器会给 return 一个引用,例如:
这意味着,在 label @a 返回 1,而不是返回一个表达式
PS: 上面这段话我也没看懂,希望知道的朋友可以解释一下^_^
日期:2017年 06月 24日 星期六
译者:Linky
返回和跳转
Kotlin 有三个结构化的跳转表达式:—— return
—— break
—— continue
所有这三个表达式都可以作为更大表达式的一部分:
val s = person.name ?: return
这些表达式的类型是 Nothing type
Break 和 Continue 标签
Kotlin 中的任意表达式都可以标记为一个 label。Label 由一个标记符跟上@符号构成。
例如
abc@,
fooBar@,为了标记一个表达式,我们只需要在它前面加一个 label 即可。
loop@ for (i in 1..100) { // ... }
现在,我们可以使用 label 来限制一个 break 或者一个 continue 语句:
loop@ for (i in 1..100) { for (j in 1..100) { if (...) break @loop } }
break 将跳转到循环结束后的下一行作为执行入口,continue 将继续执行这个循环的下一个迭代。
Return Label
在 Kotlin 中,函数可以被嵌套。returns 允许我们从更外层的函数中返回。最重要的使用场景是从一个 lambda 表达式中返回。回忆一下,当我们写这个的时候:
fun foo() { ints.forEach { if (it == 0) return print(it) } }
return 表达式将从最外层函数中返回,例如
foo。如果我们想仅仅从 lambda 表达式中返回,我们必须
给它加上标签。
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 一个引用,例如:
return@a 1
这意味着,在 label @a 返回 1,而不是返回一个表达式
(@a 1)
PS: 上面这段话我也没看懂,希望知道的朋友可以解释一下^_^
相关文章推荐
- Kotlin-07.返回和跳转(return/break/continue)
- Kotlin编程之Break标签和Return标签及Continue标签
- break,continue,return使用场景, 以及标号的使用
- Java的for语句中break, continue和return的区别
- C语言break,continue和return的区别
- swift之控制转移语句,continue,break,fallthrough,return,带标签的语句
- Hello : break continue return
- break, return, continue区别
- break、continue、return之间的区别与联系
- break、continue和return在编程中的作用
- break,continue,return的区别
- 4 Java基础语法(switch语句,循环语句(for,while),控制跳转语句(break,return,continue))
- Java基础-break,continue,return
- (C# 基础) 跳转 (break, continue, goto, return, throw ).
- JavaSE 基础 第17节 流程控制之break、continue、return的用法
- C语言关键字:break、continue、return、exit
- 详解C#break ,continue, return (转)
- js中break,return,continue区别
- Android中return,break,continue的区别
- C++中的break,continue和return语句小结