Kotlin基础教程-基础语法(2)

来源:互联网 发布:软件开发 工作经验 编辑:程序博客网 时间:2024/06/06 19:01

类型检查

使用关键字is来检测表达式类型,如果是常量或属性,如果进行了类型检查,类型检查分支的自动转变为该对象

这里写图片描述

如果判断的时候用!is,怎if语句外的obj自动转化为该对象

fun getStringLength(obj:Any):Int? {    if(obj !is String){        return null    }    return obj.length}

更加强大的是如果在&&判断的左边有判断,右边也能直接转化为该对象,这个确实有点强大

循环语句

for

val list = listOf("doctorq","dev","test")    for(item in list){        println(item)    }

这里写图片描述

如果要获取索引值的话使用

val list = listOf("doctorq","dev","test")    for(index in list.indices){        println("$index : ${list[index]}")    }

这里写图片描述

while

val list = listOf("doctorq","dev","test")    var index = 0    while (index < list.size) {        println("item at $index is ${list[index]}")        index++    }

when

类似java中的switch,scala中的case

fun describe(obj: Any): String =            when (obj) {                1 -> "One"                "Hello" -> "Greeting"                is Long -> "Long"                !is String -> "Not a string"                else -> "Unknown"            }

这里写图片描述

范围

获取一个区间的值,可以使用in关键字
创建一个区间数组,可以使用..来创建。比如创建一个1到10的数组,可以使用1..10来创建

val x = 10val y = 9if (x in 1..y+1) {    println("fits in range")}

还有使用跳跃式获取某个数,比如在1到10的数组中,每个2个取一次
,代码如下:

for (x in 1..10 step 2) {        print("$x\n")    }

集合

遍历集合,还是用in

for (item in items) {    println(item)}

lambda表达式操作集合

类似scala式的操作,spark操作中经常使用的语句,filter,map,foreach等等

fruits.filter { it.startsWith("a") }.sortedBy { it }.map { it.toUpperCase() }.forEach { println(it) }

请关注我的微信公众号号,实时接收最新文章

这里写图片描述