【Kotlin学习日记】Day6:控制流程
大家好,欢迎加入小李君的Kotlin学习之旅。今天是小李君学习 Kotlin 的第六天。
Control Flow - 控制流程
学习链接:
if 表达式
if 有两种用法,一种是传统的 statement 代码段,另一种是 expression 表达式。特别注意的是,表达式的用法必须有 else ,因为 kotlin 不允许隐蔽地传空值。BTW,三目运算符被 if 表达式给替代了。
when 表达式
when 有两种玩法,一种是类似 switch case 的,另一种是作为 if-else-if 的替代品。
当作为 switch case 使用的时候,when 后面括号紧跟一个输入变量,并匹配该变量直到为 true 后,执行相应 statement。当所有的条件都不满足该变量时,则执行 else 所对应的 statement。此时的 else 相当于 switch case 的 default。
when,还可以支持 or 条件判断。这个在 java 来看是不太可能会发生的事情。
when,还可以使用任意表达式来判断;这里写的 expression,我认为应该是 statement 代码段,只要不抛出异常,就不会执行 else。
when,还可以支持 in + 数组 这种表达式判断。不过我猜应该会用的很少。
when,还可以作为表达式本身,把结果直接赋值给函数。
当作为 if-else-if 来使用的时候,when 没有紧跟一个输入变量,这种会相当常用。当很多老工程师用职责链模式或者其他新的设计模式去优化 if-else-if 这些臃肿的判断体的时候,小李君表示,干嘛不学 Kotlin 呢。
For 循环
for (val item in someArray) {
// do what you want
}
for 循环其实没什么特别的地方。还是老样子,foreach。
只是 array 类型提供了很多自带的函数,让 array 的玩法多了起来。
withIndex() 到底返回了什么鬼?
感觉像 Map,老外总是喜欢卖关子,小李君表示今晚又会睡不着了啊。
while 循环
while 循环还是老样子,几十年不变,任何语言都无法抗拒 while 循环。
画画重点
- when
-- 完 --