Kotlin学习(7):返回和跳转

来源:互联网 发布:中美洲际高铁 知乎 编辑:程序博客网 时间:2024/06/08 04:44
  • 开发环境:IntelliJ IEDA
  • 个人博客:http://blog.csdn.net/IInmy
  • 项目源码:https://github.com/Rushro2m/LearnKotlin-master

Kotlin有三种结构化跳转表达式:

  • return:默认从最直接包围它的函数或者匿名函数返回。
  • break:终止最直接包围它的循环。
  • continue:继续下一次最直接包围它的循环。

所有的这些表达式都可以用作更大表达式的一部分:

val s = Person("张三").name ?: return

1、Break与Continue标签

在Kotlin中任何表达式都可以用标签(label)来标记。标签的格式为标识符后跟@符号,例如:abc@fooBar@都是有效的标签。要为一个表达式加标签,我们只要在其前加标签即可。

loop@ for (i in 1..100) {        //...    }

标签限制的break跳转到刚好位于该标签指定的循环后面的执行点。continue继续标签指定的循环下一次迭代。

2、标签处返回

Kotlin有函数字面量、局部函数和对象表达式。因此Kotlin的函数可以被嵌套。标签限制的return允许我们从外层函数返回。最终的一个用途就是i从Lambda表达式中返回。

fun foo() {    val ints = listOf(0, 1, 2, 3, 4, 5, 6)    ints.forEach {        if (it == 3)        //从Lambda函数中返回,结束这个循环函数            return        print(it)    }}

这个return表达式从最直接包围它的函数即foo中返回。如果我们需要从Lambda表达式中返回,我们必须给它加标签并用以限制return

fun fzz() {    val ints = listOf(0, 1, 2, 3, 4, 5, 6)    ints.forEach lit@ {        if (it == 0) return@lit        print(it)    }}

通常情况下使用隐式标签更方便。改标签与该Lambda的函数同名。

fun fxx() {    val ints = listOf(0, 1, 2, 3, 4, 5, 6)    ints.forEach {        if (it == 0) return@forEach        print(it)    }}

3、Continue

continue指的是继续标签指定的循环的下一次迭代,也就是结束本次循环,开始下一次循环。

for (i in 1..10){        if (i==6)continue        print(i)    }
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子计算总出错怎么办 初三计算题算错怎么办 孩子口算老出错怎么办 孩子考试总粗心怎么办 孩子作业错误率高怎么办 数学计算总出错怎么办 16岁不认字怎么办 数学细节丢分怎么办 感觉自己老了怎么办 小学拼音不过关怎么办 小学面试不过关怎么办 小学阅读不过关怎么办 孩子计算老出错怎么办 工作中总是马虎怎么办 孩子总是计算错误怎么办 做设计老是犯错怎么办 小学生阅读总出错怎么办 写作文没思路怎么办 孩子不爱写作文怎么办 写作文没有素材怎么办 写作文没有灵感怎么办 做事工作马虎粗心大意怎么办 小孩作业马虎粗心大意怎么办 孩子写字一直错怎么办 孩子写字老错怎么办 写错字涂黑了怎么办 写错字不能涂改怎么办 孩子爱写错别字怎么办 孩子读题马虎怎么办 孩子知错不该怎么办 小孩胆小反应慢怎么办 孩孑经常流鼻血怎么办 中考考号写错了怎么办 头后仰就头晕怎么办 感觉自己要晕倒怎么办 孩子不愿动手写字怎么办 老年人恶心想吐怎么办 小学生老写错别字怎么办 突然头晕站不稳 怎么办 早上起床突然天旋地转怎么办 躺着突然感觉天旋地转怎么办