kotlin学习笔记——过程控制和Range表达式
1、if表达式
2、when表达式
- 对于默认的选项可以增加else分支(与java中的defualt类似)
- 与java的switch/case不同的是,参数可以是任何类型,也可以是一个条件
- 一个条件也可以是多个逗号分隔的值
when(x){0, 1 -> print("1")2 -> print("2")else -> {print("else")...}
}
同样作为表达式也可以返回一个值,如:
val a = when(x){...
}
当需要返回一个值时,由于必须要返回,所以必须覆盖所有的可能性分支或实现else,否则不会被编译成功。当不需要返回时,则不需覆盖所有可能性。
when(view){is TextView -> view.setText("test")is EditText -> toast("value is ${view.getText()}")else -> view.visibility = View.GONE
}
通过is判断后,参数会被自动转型,所以不需要明确的做类型转换。
val cost = when(x){in 0..10 -> "cheap"in 10..100 -> "regular"in specialValues -> "special"else -> "not raded"
}
它甚至可以摆脱参数,代替if/else链,如:
val res = when{x in 0..10 -> "cheap"y.contains("hello") -> "hello world"v is EditText -> v.getText()else -> ""
}
注意:(1)使用when时参数可以为null,如果没有匹配的分支则什么都不发生或执行else分支。
3、for循环
for(item in collection){...
}
在for中我们也可以使用ranges,如:
for(index in 0..parent.getChirldCount() - 1){...
}
对于迭代一个Collection(array或list)的index,可以使用Collection的indices属性,如
for(index in array.indices){...
}
通过观察源码可以指定,indices是一个IntRange类型,它的值是0..size-1,所以说它是一个collection所有index的range。
4、while和do/while
5、try和throw
6、range
if(i in 0..10){...
}
for(i in 0..10){....
}
for(i in 10 downTo 0){...
}
for(i in 1..4 step 2){...
}
上面的代码只会遍历到1、3
for(i in 0 until 4){...
}
就等同于0..3,不包括最后的。
kotlin学习笔记——过程控制和Range表达式相关推荐
- kotlin学习笔记——枚举、封闭类
1.枚举 kotlin中提供类枚举的实现,与java相同.枚举可以带参数,如 enum Icon(val res: Int){MENU(R.drawable.menu),BACK(R.drawable ...
- Kotlin学习笔记(3)- 语法
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- Kotlin学习笔记20 阶段复习2
参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 lambda表达式 内联函数 Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数_积跬步 至千里- ...
- Kotlin学习笔记(1)-- 基础语法
文章目录 Kotlin学习笔记(1)-- 基础语法 输出 语法 代码 输出 可读可改(var) 语法 代码 输出 内置数据类型 只读变量(val) 类型推断 编译时常量 语法 代码 输出 引用类型 r ...
- Kotlin学习笔记(一)
文章目录 Kotlin学习笔记 变量申明 只读变量 类型推断 编译时常量 引用类型和基本数据类型 if表达式 when String 模板 函数头 函数参数 Unit函数 Nothing类型 反引号中 ...
- Kotlin学习笔记19 阶段复习1
参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 基础部分 Kotlin学习笔记 第一章开始 第二章 基础_积跬步 至千里-CSDN博客 类与继承 Kotlin学习笔记 第 ...
- Kotlin学习笔记--Kotlin之集合
Kotlin学习笔记--Kotlin之集合 集合类 1. List 集合 1.1 不可变list 1.2 可变list MutableList 1.3 集合遍历 1.4 List的操作函数 1.5 l ...
- Kotlin 学习笔记(八)—— Kotlin类与对象之接口
Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...
- Kotlin学习笔记(2)- 空安全
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
最新文章
- 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...
- QT的QDialog类的使用
- linux用的那国语言,在linux上可以使用什么变成语言
- php链接远程socket,php使用socket获取远程图片
- CompletableFuture详解~getNow
- 2017.3.29 lis 失败总结
- [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程
- 冲刺CCNA2.0(200-120)认证考试TK视频讲解
- 【java】监听器、box和JFrame的应用
- vue watch 修改滚动条_只需要这几个vue快捷开发技巧,看完技术提升30%!!!!...
- WordPress网站配置腾讯云cdn缓存
- vue——动态吸顶组件
- linux redhat下载地址
- word树状分支图_word中插入树状图的两种方法
- android n改铃声,来电铃声自定义,我”响“你快乐!
- 【C++/OOP】(侯捷著) (转)
- 愚人节的礼物(HDU1870)
- 富友集团由盈转亏:收购事项完成后未变更,旗下富友支付多次被罚
- 对脏写、脏读、不可重复度、幻读的理解笔记
- 我问 ChatGPT Java 编程语言的优缺点是什么?它这么回答……