肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > Kotlin学习(7):返回和跳转

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

时间:2020-05-22 20:32:38

相关推荐

开发环境:IntelliJ IEDA个人博客:/IInmy项目源码:/Rushro2m/KotlinForOfficial官方文档中文版:/docs/reference/returns.html

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函数中返回,结束这个循环函数returnprint(it)}}

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

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

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

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

3、Continue

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

for (i in 1..10){if (i==6)continueprint(i)}

如果觉得《Kotlin学习(7):返回和跳转》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。