【Kotlin学习日记】Day6:控制流程

大家好,欢迎加入小李君的Kotlin学习之旅。今天是小李君学习 Kotlin 的第六天。

Control Flow - 控制流程

学习链接:

  • https://kotlinlang.org/docs/reference/control-flow.html

if 表达式

【Kotlin学习日记】Day6:控制流程_第1张图片

if 有两种用法,一种是传统的 statement 代码段,另一种是 expression 表达式。特别注意的是,表达式的用法必须有 else ,因为 kotlin 不允许隐蔽地传空值。BTW,三目运算符被 if 表达式给替代了。

when 表达式

【Kotlin学习日记】Day6:控制流程_第2张图片

when 有两种玩法,一种是类似 switch case 的,另一种是作为 if-else-if 的替代品。

当作为 switch case 使用的时候,when 后面括号紧跟一个输入变量,并匹配该变量直到为 true 后,执行相应 statement。当所有的条件都不满足该变量时,则执行 else 所对应的 statement。此时的 else 相当于 switch case 的 default。

【Kotlin学习日记】Day6:控制流程_第3张图片

when,还可以支持 or 条件判断。这个在 java 来看是不太可能会发生的事情。

when,还可以使用任意表达式来判断;这里写的 expression,我认为应该是 statement 代码段,只要不抛出异常,就不会执行 else。

【Kotlin学习日记】Day6:控制流程_第4张图片

when,还可以支持 in + 数组 这种表达式判断。不过我猜应该会用的很少。

【Kotlin学习日记】Day6:控制流程_第5张图片

when,还可以作为表达式本身,把结果直接赋值给函数。

【Kotlin学习日记】Day6:控制流程_第6张图片

当作为 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 循环

【Kotlin学习日记】Day6:控制流程_第7张图片

while 循环还是老样子,几十年不变,任何语言都无法抗拒 while 循环。

画画重点

  • when

-- 完 --

你可能感兴趣的:(【Kotlin学习日记】Day6:控制流程)