美文网首页
kotlin语言学习04 ——kotlin特殊类和关键字

kotlin语言学习04 ——kotlin特殊类和关键字

作者: LiangLliu | 来源:发表于2019-12-19 19:55 被阅读0次

kotlin中特殊类Any,特殊关键字is,when的用法

本小节主要讲解kotlin与Java中不同并且特殊类Any,特殊关键字is,when的用法

一、特殊的类

1、Any类

示例:

var a: Any

Any 类在kotlin中的描述

    The root of the Kotlin class hierarchy. Every Kotlin class has [Any] as a superclass. 

Any类型 : 表示任意类型。
相当于Java中的 Object,但是Any和Java中的Object又不是一回事,毕竟是两种语言

二、特殊关键字

1、is 关键字

/**
 * 将字符串转换为大写
 */
fun strToUpperCase(str: Any): String? {
    /**
     * TODO : 判断 str 是不是字符串
     * is 相当于Java中的 instanceof 关键字
     */
    if (str is String) {
        return str.toUpperCase()
    }
    return null
}

is 关键字就省去Java中比较繁琐的比较

2、when关键字的使用

1、kotlin中的when 关键字相当于 Java语言中的 switch --- case

/**
 * @when 关键字
 * 相当于 switch-case
 */
fun strConversion(str: String): String {

    when (str) {

        // TODO :  如果字符串为 "hello" 那么久返回 "HELLO"
        "hello" -> return "HELLO"

        // TODO :  如果字符串为 "world" 那么久返回 "WORLD"
        "world" -> return "WORLD"

        // TODO : 如果字符串为 "hello world" 那么久返回 "HELLO WORLD"
        "hello world" -> return "HELLO WORLD"

        // TODO : 其他情况
        else -> return "other input"
    }


}

以上代码可以进行简化

// 函数式简化
fun strConversion3(str: String) =
    when (str) {

        // TODO :  如果字符串为 "hello" 那么久返回 "HELLO"
        "hello" -> "HELLO"

        // TODO :  如果字符串为 "world" 那么久返回 "WORLD"
        "world" -> "WORLD"

        // TODO : 如果字符串为 "hello world" 那么久返回 "HELLO WORLD"
        "hello world" -> "HELLO WORLD"

        // TODO : 其他情况
        else -> "other input"
    }

2、when关键字的高级用法

/**
 * @when : when关键字
 */
fun main() {
    println("----------------- when 关键字的使用 ---------------------------")
    val a = 6
    var result = when (a) {
        // TODO: 如果 a == 1
        1 -> {
            println("a = 1")
            10
        }

        // TODO: 如果 a == 2
        2 -> {
            println(" a = 2")
            20
        }

        // TODO: 如果 a == 3 or 4 or 5
        3, 4, 5 -> {
            println("3 or 4 or 5")
            30
        }

        // TODO: 如果 a在区间 6到10之间
        in 6..10 -> {
            println("a is between 6 and 10")
            40
        }

        // TODO : 使用when 时候必须遍历完所有的可能
        else -> {
            println("a is other value")
            null
        }
    }

    println(result)
}

通过使用when 关键字,在逻辑判断时候,巧妙地使用可以发挥很大的作用,为简化代码的书写起到很大的作用。

相关文章

网友评论

      本文标题:kotlin语言学习04 ——kotlin特殊类和关键字

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