Kotlin学习笔记2-4 基础-返回和跳出

来源:互联网 发布:e商盟软件 编辑:程序博客网 时间:2024/05/18 00:56

返回和跳出

Kotlin官网:Basics-Returns and Jumps

Kotlin支持3种跳出语句
1. return:默认从最近的外围函数或匿名函数返回值
2. break:中断最近的循环
3. continue:跳到最近的循环的下一步

这3种跳出语句和Java的定义类似,不同的是Kotlin的这三种跳出语句还可以写在其他语句中:

val s = person.name ?: return

此时return返回Nothing类(类似于Java中的null或者Void)

中断、继续标签

Kotlin中支持为任意表达式起名,格式为”标签名@”,用法和Java类似,写在要起名的表达式之前即可

loop@ for (i in 1..100) {    for (j in 1..100) {        if (...) break@loop    }}

此时就可以使用标签在指定中断或继续的循环了。

返回标签

Kotlin中的return返回的是最近的外围函数或者匿名函数,在lambda中使用return时,return的是最近的外围函数,例如:

fun foo() {    ints.forEach {        if (it == 0) return  // nonlocal return from inside lambda directly to the caller of foo()        print(it)    }}

此时return返回的是foo函数,如果想返回forEach的lambda表达式,可以使用标签:

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

此时return返回的就是forEach了。Kotlin为每个lambda都生成有默认的label,名字和方法名相同,使用更方便:

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

当使用匿名函数取代lambda时,return返回的是匿名函数自身,而不是外围函数:

fun foo() {    ints.forEach(fun(value: Int) {        if (value == 0) return  // 此时返回的是forEach匿名函数        print(value)    })}

当返回标签有返回值时:

return@a 1

意为在lable a处返回1,而不是返回”@a 1”

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 伦家 母亲在家被同学伦 阿伦一家狂欢 艾伦家地下室的秘密 艾伦家地下室的真面目 伦巴 伦巴舞曲 伦巴基本步 拉丁舞伦巴 伦巴海贼团 上海伦巴 伦巴拉丁舞 双人舞伦巴 伦巴交谊舞 交谊舞伦巴 伦巴歌曲 伦巴舞步 休闲伦巴 杨艺教你跳伦巴 杨艺教跳伦巴 学跳伦巴一步一步教 伦巴夫妇超话 伦巴歌曲大全100首 伦巴基本步名称 2018伦巴绽放含分解教学 拉丁舞伦巴基本步分解动作 伦巴说句心里话 拉丁舞伦巴基本步教学 阎岭伦巴基本步教学 伦巴双人基本步教学 交谊舞伦巴基本步教学 老师常用的伦巴舞曲 国标舞伦巴基本功 拉丁舞伦巴基本步 伦巴拉丁舞蹈歌曲 好听的伦巴舞曲 交谊舞伦巴花样教学 沃伦巴特男装 伦巴基本步示范 学跳伦巴基本步 休闲伦巴楚韵口令教学