05. 类型检测及类型自动转换

作者: 厚土火焱 | 来源:发表于2017-10-30 18:35 被阅读104次

在 Kotlin 中有个 is 运算符,用了检测一个表达式是否是某个类型的实例
判断之后,类型会根据情况自动发生转换

fun getStringLength(x: Any): Int? {
    if(x is String){
        //这里的 x 已经是 String 类型了
        return x.length
    }
    //这里的 x 还是 Any 类型
    return null
}

如果是反向判断也可以发生变化

fun getStringLength2(x: Any): Int? {
    if(x !is String){
        //这里的 x 是 Any 类型
        return null
    }
    //这里的 x 已经是 String 类型了
    return x.length
}

甚至在 && 运算符的右侧进行类型转换

fun getStringLength3(x: Any): Int? {
    // 在 && 运算符的右侧, x 的类型会被自动转换为 String
    if(x is String && x.length > 0){
        return x.length
    }
    return null
}

调用代码方法

    println(getStringLength("shun"))
    println(getStringLength(98))
    println(getStringLength2("shun"))
    println(getStringLength2(66))
    println(getStringLength3("shun"))
    println(getStringLength3(77))

运行结果

4
null
4
null
4
null

相关文章

  • 05. 类型检测及类型自动转换

    在 Kotlin 中有个 is 运算符,用了检测一个表达式是否是某个类型的实例判断之后,类型会根据情况自动发生转换...

  • Kotlin 系列(二) 基本语法(2)

    使用类型检测及自动类型转换 is 运算符检测一个表达式是否某类型的一个实例。 如果一个不可变的局部变量或属性已经判...

  • JAVA数据类型转换

    普通类型自动转换 左边的数据类型可以自动转换到右边的数据类型 String类型自动转换 普通基本类型可以自动转换为...

  • Java 语言如何实现数据自动化类型转换

    数据类型的转换分为两种 : 1.自动类型转换2.被动类型转换 我们首先来解析自动类型转换 自动类型转换 我们讲解了...

  • 笔记2018-08-28

    类型转换 自动类型转换运算转换(编译器会自动把小类型转换为大类型) 赋值转换(将等号右边的类型转换为等号左边的类型...

  • javascript学习目录

    【1】ECMAScript数据类型及类型转换 【2】检测类型 【3】注意JavaScript没有块级作用域 【4】...

  • JAVA数据类型转换_自动转换

    A: 自动类型转换 a:表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换 自动类型转换格式: ...

  • 【精致Java教程】14:常量、变量与运算符(五)

    数据类型之间的转换分为两种,一种是自动类型转换,一种是强制类型转换。 自动类型转换### 顾名思义,自动类型转换就...

  • java数据类型

    1、整型拓展 2、浮点数 3、类型转换 java强制类型转换和自动类型转换。自动类型转换是程序执行过程中自动进行转...

  • 2.4-全栈Java笔记:基本类型转化及常见错误和问题

    数据类型的转换 自动类型转换 自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。在图1所示,黑色的...

网友评论

    本文标题:05. 类型检测及类型自动转换

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