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

作者: William李梓峰 | 来源:发表于2017-06-22 00:20 被阅读89次

    大家好,欢迎加入小李君的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

    -- 完 --

    相关文章

      网友评论

      本文标题:【Kotlin学习日记】Day6:控制流程

      本文链接:https://www.haomeiwen.com/subject/cicxcxtx.html