即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Kotlin初步入门基础知识教程-类型检查与自动转换

编程语言 qhshiniba 5℃ 0评论
本文目录
[隐藏]

类型检查和自动转换

1.类型判断

is/!is表达式

if (obj is String) {
    print(obj.length)
}

if (obj !is String) { // same as !(obj is String)
    print("Not a String")
}
else {
    print(obj.length)
}

2.智能转换

kotlin具有自动转换类型的功能,在is/!is表达式,会根据判断的结果走向的不同语句块,相应只能转换类型

if 语句

fun demo(x: Any) {
    if (x is String) {
        print(x.length) // x is automatically cast to String
    }
    x.length//编译器报错
}

这里写图片描述

上面的if条件内部的x是可以直接调用String的方法length的。而外部的x不可以。

||&&操作中也有智能转换

if (x !is String || x.length == 0) return
//如果x!is String判断失败,说明x是String类型,这个时候会自动转换为String

  if (x is String && x.length > 0)
      print(x.length) 
  //如果x is String判断失败,就直接返回了,不会执行&&后面的。但是判断成功后,会自动转化为String

when

when (x) {
    is Int -> print(x + 1)
    is String -> print(x.length + 1)
    is Array -> print(x.sum())
}

3.不安全的转换符

fun check(y: Int?) {
    val x: String = y as String
}

fun main(args: Array<String>) {
    val y: Int? = null
    check(y)
}

如果传入的ynull,那么上面的y as String就会报错。

这里写图片描述

4.安全转换符

as ?

fun check(y: Int?) {
    val x: String ? = y as? String
    println(x)
}

转载请注明:CodingBlog » Kotlin初步入门基础知识教程-类型检查与自动转换

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情