一、枚举类最基本的用法是实现一个类型安全的枚举。
枚举常量用逗号分隔,每个枚举常量都是一个对象。
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()
}