Kotlin的枚举

一、枚举类最基本的用法是实现一个类型安全的枚举。
枚举常量用逗号分隔,每个枚举常量都是一个对象。

enum class Lang {
    ENGLISH,
    CHINESE;
}

二、可以使用枚举的构造方法初始化枚举的值

enum class Lang(val hello:String) {
    ENGLISH("Hello"),
    CHINESE("你好");
}

三、伴生对象即 静态方法,一个类对应一个伴生对象,一个伴生对象也只对应一个类;

// 1、Kotlin的枚举类型也是一个类,并且每个枚举值都有构造方法
enum class Lang(val hello:String) {
    ENGLISH("Hello"),
    CHINESE("你好");

    //伴生对象
    companion object {
        fun parse(name:String):Lang {
            return valueOf(name.toUpperCase())
        }
    }
}

四、枚举的扩展方法

fun Lang.sayBye(){
    var bye = when(this){
        Lang.ENGLISH -> "bye"
        Lang.CHINESE -> "再见"
    }
    println(bye)
}

// 1、Kotlin的枚举类型也是一个类,并且每个枚举值都有构造方法
enum class Lang(val hello:String) {
//2、可以使用枚举的构造方法初始化枚举的值
    ENGLISH("Hello"),
    CHINESE("你好");

    fun sayHello() {
        println(hello)
    }

    //3、compaion(伴生对象) 静态方法,一个类对应一个半生对象,一个半生对象也只对应一个类;
    companion object {
        fun parse(name:String):Lang {
            return valueOf(name.toUpperCase())
        }
    }
}

//4、枚举的扩展方法
fun Lang.sayBye(){
    var bye = when(this){
        Lang.ENGLISH -> "bye"
        Lang.CHINESE -> "再见"
    }
    println(bye)
}

fun main(args:Array<String>) {
        if (args.isEmpty()) return
        val lang = Lang.parse(args[0])

        lang.sayHello()
        lang.sayBye()
}



    原文作者:kevinLY
    原文地址: https://www.jianshu.com/p/20432e636b91
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞