Kotlin学习(7):返回和跳转
- 开发环境:IntelliJ IEDA
- 个人博客:http://blog.csdn.net/IInmy
- 项目源码:https://github.com/Rushro2m/KotlinForOfficial
- 官方文档中文版:https://www.kotlincn.net/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):返回和跳转相关推荐
- Kotlin 5 控制流,返回和跳转
注:当前文档为Kotlin自学总结,若什么地方含义模糊不清,敬请指教,谢谢:-). 目录:- 控制流-循环和控制语句- 返回和跳转-return,continue,break 复制代码 控制流 if: ...
- Kotlin 学习笔记(八)—— Kotlin类与对象之接口
Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...
- Kotlin 学习笔记(七)—— Kotlin类与对象之属性与字段
Kotlin 学习笔记(七)-- Kotlin类与对象之属性与字段 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- ...
- Kotlin学习笔记 第一章开始 第二章 基础
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 本系列为参考Kotlin中文文档 https://download.csdn.net/dow ...
- Kotlin学习笔记1——变量、函数
Kotlin学习笔记1 (学习教材为<第一行代码(第三版)>by郭霖) 1.Kotlin概述 Java虚拟机不关心class文件的编译来源,即只要是符合规格的class文件,Java虚 ...
- Android Kotlin学习笔记(一)—— Kotlin Koans
文章目录 题记 1.资料阅读 2.辅助插件 3.习题演练 3.1 Introduction 1.Hello world 2.Java to Kotlin conversion 3.Named argu ...
- 【Android】Kotlin学习(一)
目录 Android--Kotlin学习 1. 使用控件id直接使用控件 2. 继承类实现接口 3. 点击事件监听 4. 点击事件接口实现 5. 页面跳转 6. 文本操作 7. 网络请求数据 8. K ...
- Kotlin学习笔记(3)- 语法
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- Kotlin学习笔记(2)- 空安全
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- kotlin学习笔记——枚举、封闭类
1.枚举 kotlin中提供类枚举的实现,与java相同.枚举可以带参数,如 enum Icon(val res: Int){MENU(R.drawable.menu),BACK(R.drawable ...
最新文章
- 定制Apache索引样式
- C#--多线程--2
- poj 1298 The Hardest Problem Ever
- 究竟是什么可以比反射还快实现动态调用?| Source Generators版
- Linux下用ls和du命令查看文件以及文件夹大小
- 17011301(UE4的AnimDynamic)
- 十-二进制数的最少数目
- css怎么实现加载的圆圈_图像高清方案——响应式图像让图像加载又快又省
- asp.net 通过IHttpModule开发接口
- dell服务器运维,【产品鉴赏】戴尔DELL R710服务器
- 2022全新彩虹商城知识付费模板源码+修复改良版
- impalahive大数据平台数据血缘与数据地图(四)-impala血缘架构图及功能介绍
- js实现千位分隔符运算
- 数据分析报告这样写,才算真正读懂了数据
- sort by age(vector)
- 用python画熊_Python数据可视化:Pandas库,只要一行代码就能实现
- C语言约瑟夫报数出圈算法,详解约瑟夫环问题及其相关的C语言算法实现
- 每天一个小Error
- 通过blacklist来禁用驱动
- 婚纱行业怎么做好有效的营销方案来打动客户?
热门文章
- 2004胡润IT富豪榜
- Excel 创建多级列表
- Python手写实现LDA与QDA算法
- mysql类似于excel的删除重复项_删除重复数据 excel去除重复数据 怎么筛选重复数据 excel重复数据合并...
- 教程:简单几步制作出酷炫网页版简历
- 王者荣耀怎么删除在服务器上建立的账号,王者荣耀账号怎么注销 王者荣耀账号注销方法...
- mysql 数据连续不走索引6_MySql组合索引最左侧原则失效
- VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation。
- Mysql 多表查询详解
- 机械革命code01卡顿