Kotlin 从学习到 Android 第五章 返回和跳转
2017-06-03 22:16
183 查看
在 Kotlin 中,有三种返回和跳转语句:
return 从最近的一个封闭函数或匿名函数中返回;
break 跳出最近的封闭循环;
continue 继续执行最近封闭循环的下一步;
上面这三个表达式也能够作为其他表达式的一部分:
但是,当 return 后面跟上标签时,表示符合判断条件后终止标签所标记的表达式,类似于 break 的作用:
lit@ 是后面表达式的标签,当 it == 0 时,终止表达式 {…} ,ints.forEach 继续执行,所以打印结果是 123
然而,更多情况下我们使用匿名标签,其标签名和 lambda 表达式中函数的名称一样:
或者,我们也可以使用一个匿名函数来代替 lambda 表达式,这样这个 return 的作用就是终止当前的匿名函数:
当需要返回值时,我们可以这么写:
这句话的意思是:表达式 @a 的返回结果是 1 ,而不是返回一个有标记的表达式 (@a 1)。
return 从最近的一个封闭函数或匿名函数中返回;
break 跳出最近的封闭循环;
continue 继续执行最近封闭循环的下一步;
上面这三个表达式也能够作为其他表达式的一部分:
val s = person.name ?: return
break 和 continue 标签
在 Kotlin 中任何表达式都可以使用标签,标签的格式为:标签名@,例如,abc@ 、m@ 等。使用标签时,我们只需把标签放在表达式前面即可,一般和表达式有一个空格的距离:// 再 i = 10 时跳出整个循环 loop@ for (i in 1..100) { for (j in 1..10) { if (i == 10) break@loop else println("$i : $j") } }
使用标签的 return
一般情况下,Kotlin 中的 return 和 java 中的 return 效果一样,都是结束最近的封闭函数:var ints = arrayListOf<Int>(0 ,1 ,2, 3) fun foo() {// 并不会打印出任何值 ints.forEach { if (it == 0) return print(it) } }
但是,当 return 后面跟上标签时,表示符合判断条件后终止标签所标记的表达式,类似于 break 的作用:
var ints = arrayListOf<Int>(0 ,1 ,2, 3) fun foo() { ints.forEach lit@ { if (it == 0) return@lit print(it) } }
lit@ 是后面表达式的标签,当 it == 0 时,终止表达式 {…} ,ints.forEach 继续执行,所以打印结果是 123
然而,更多情况下我们使用匿名标签,其标签名和 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@a 1
这句话的意思是:表达式 @a 的返回结果是 1 ,而不是返回一个有标记的表达式 (@a 1)。
相关文章推荐
- Kotlin 学习之返回与跳转
- android kotlin基础(四)-返回和跳转
- Kotlin学习(六): 包、控制流、返回与跳转
- Kotlin 学习笔记(五)—— Kotlin基础之控制流、返回与跳转、 包与导入
- Android学习之使用startActivityForResult()和onActivityResult()进行跳转并返回数据
- Android中Kotlin的学习(点击事件、跳转、for循环、RecyclerView、回调)
- 学习kotlin第六天_包、控制流、返回和跳转
- Kotlin 官方学习教程之返回和跳转
- Android学习之Activity跳转与传值
- Android开发,Kotlin的了解与学习(六)-----类与继承
- Android知识体系梳理笔记五:Kotlin学习笔记一:类和继承以及Anko(全)的基本使用
- 【android】关于多个activity页面跳转,跳过中间页面返回前边页面传值
- Android开发,Kotlin的了解与学习(五)-----基本语法之集合相关
- Android开发,Kotlin的了解与学习(七)-----接口与实现
- Kotlin基础(二)——包、控制流、返回和跳转
- Android学习-Intent实现页面的跳转
- Android开发官方语言-Kotlin学习资源汇总
- android——webview拦截跳转指定url后,点击返回界面重定向的问题
- Kotlin语法(五)-返回和跳转
- android之无返回结果跳转intent