Kotlin学习之旅(D2)-基本语法

版权声明:本文作者为BlueLzy,原出处为CSDN博客 - http://blog.csdn.net/blue_zy,转载请注明出处。 https://blog.csdn.net/blue_zy/article/details/82973929

Day 2

Kotlin学习之旅的第二天

今天让我们完成 基础语法 的学习

前言

昨天,我们学习了一部分的基础语法,文章链接:Kotlin学习之旅(D1)-学习计划&基本语法

最后还剩下三个基础语法没学:

  • for循环和while循环
  • when表达式
  • 遍历集合

今天让我们一个个解决掉~

循环

for循环

在Java,C,Python等各种编程语言中,都会有循环控制,其中for循环又是最为常见的,在Kotlin中,for循环的语法为:

for(item in collection){
    print(item)
}

通过 in 关键字来进行循环,当然,也可以指定范围:

for (i in 1..3){
    println(i)
}

通过 “…” 表示范围,那么如果是只取奇数,或者偶数呢?间隔3个数取值呢?这时候就要用到 step 关键字了

for(i in 1..6 step 2){
    println(i)
}

输出结果为:

1
3
5

因为我们取值范围是1-6,每隔1个取值(step 2)

好了,那么如果我们希望从大到小取值呢,kotlin里面提供了一个downTo关键字

for (i in 6 downTo 0 step 2) {
    println(i)
}

这个函数的输出结果就是:

6
4
2
0

因为我们取值范围是6-0,每隔1个取值(step 2)

除了最基本的int型,我们还可以取数组的值:

fun main(args: Array<String>) {
val array = arrayOf("a", "b", "c")
    for (i in array.indices) {
        println(array[i])
    }
}

其他的集合类型我们会在后面的 遍历集合 里面再讲

while循环

while循环的语法比较简单:

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!

通常是 while(“条件语句”) { … } 或者是 do { … } while(“条件语句”)

when表达式

上面讲的 for 和 while 在 Java里面都有,所以看一遍基本上就差不多了,但是when表达式,在Java里面是没有的,比较相像的是switch语句,其实when也是条件判断,或者说是控制流的一种。

基本用法:

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // Note the block
        print("x is neither 1 nor 2")
    }
}

但是when表达式有个很厉害的地方,他可以接收表达式,或者是普通的语句,什么意思呢?看个例子就明白了:

when (x) {
    in 1..10 -> print("x is in the range")
    in validNumbers -> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    else -> print("none of the above")
}

如果是switch语句,那么case的条件里面只能是string类型,但是在when里面则灵活许多,可以是1-10范围内的数字,可以使用"!"表示“非”,甚至可以在里面调用方法:

when {
    x.isOdd() -> print("x is odd")
    x.isEven() -> print("x is even")
    else -> print("x is funny")
}

虽然这种条件判断我们也可以通过if…else 来实现,但是阅读起来,还是when表达式比较好理解。

遍历集合

一边遍历集合都会在for循环里面使用,例如:

fun main(args: Array<String>) {
    val items = listOf("apple", "banana", "kiwifruit")
    for (item in items) {
        println(item)
    }
}

输出结果为:

apple
banana
kiwifruit

同样的,在while循环中也可以遍历集合:`

fun main(args: Array<String>) {
    val items = setOf("apple", "banana", "kiwifruit")
    when {
        "orange" in items -> println("juicy")
        "apple" in items -> println("apple is fine too")
    }
}

这里虽然不太明显,但是其实通过 “orange” in items 判断 "orange"是否在items中的时候,就需要遍历整个集合,所以说 “in” 关键字的作用就是遍历

总结

好了,基础知识到这里就全部讲完了,这两天学到的基本语法在日常开发中我们经常会用到,貌似Kotlin的特性我们一个都还没说,例如:空安全,lambda表达式,如何自动生成getter和setter的类等等,这些我们会在接下来为期3天的高级语法之旅中进行学习。

这两天的基础语法其实就是让大家对kotlin这门语言有一点印象,想要真正要写出优雅,可读,高效的代码,我们还需要进行其他的理论学习,再加上不断不断的实践。

Day 2 - Learning Kotlin Trip,Completed.


猜你喜欢

转载自blog.csdn.net/blue_zy/article/details/82973929
d2
今日推荐