前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kotlin的流程控制

Kotlin的流程控制

作者头像
大话swift
发布2019-09-17 15:59:21
4240
发布2019-09-17 15:59:21
举报
文章被收录于专栏:大话swift

1 when

when就是传统的switch表达的变种

代码语言:javascript
复制
fun cas(obj: Any) {
    when (obj) {
        1 -> println("One")
        "Hello" -> println("Greeting")
        is Long -> println("Long")
        !is String -> println("not a string")
        else -> println("Unknown")
    }
}

when表达式

代码语言:javascript
复制
fun whenExpression(obj: Any) {
    var result = when (obj) {
        is String -> obj.toString()
        else -> "Hello"
    }
}

总结起来就是

Loops

for

代码语言:javascript
复制
val cakes = listOf<String>("A", "B", "C")
    for (cake in cakes) {
        println("Yum, it is nice $cake cake!")
    }

while do-while

代码语言:javascript
复制
var index = 5
    while (index < 10) {
        index++
    }
    do {
        println(index--)
    } while (index > 0)

对于loop下的几种方式有编程基础的混个脸熟带过就行

Ranges

代码语言:javascript
复制
for(i in 0..3) {             // 1
    print(i)
}
print(" ")

for(i in 2..8 step 2) {      // 2
    print(i)
}
print(" ")

for (i in 3 downTo 0) {      // 3
    print(i)
}
print(" ")

range也是一个基础语法方式,表示一个数据范围如 1..3

我们除了遍历也可以用于判断是否存在这个范围内

代码语言:javascript
复制
if (x !in 1..4) {            // 2
    print(x)
}

上面是判断x是否在1..4这个range中

Equals的判断

在kt中有==和===,但是无论哪个必须是同类才可

不同之处在于==还判断内部元素而===更多的是判断地址是否相同

看下面两个例子

代码语言:javascript
复制
val authors = setOf("Shakespeare", "Hemingway", "Twain")
val writers = setOf("Twain", "Shakespeare", "Hemingway")

println(authors == writers)   // 1
println(authors === writers)  // 2

上栗1的结果为true,2的结果为false,因为1是将内部数据排序然后比较数据,而2则是因为两个地址不同直接判断为false。我们再看下里

代码语言:javascript
复制
val authors = setOf("Shakespeare", "Hemingway", "Twain")
val writers = authors

println(authors == writers)   // 1
println(authors === writers)  // 2

根据上面的原理俩个的结果可定都是true

最后就是 典型的三目?表达式

代码语言:javascript
复制
fun max(a: Int, b: Int) = if (a > b) a else b         // 1

println(max(99, -42))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档