美文网首页Kotlin学习笔记
kotlin学习笔记——枚举、封闭类

kotlin学习笔记——枚举、封闭类

作者: chzphoenix | 来源:发表于2017-10-16 16:17 被阅读28次

Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html

1、枚举
kotlin中提供类枚举的实现,与java相同。枚举可以带参数,如

enum Icon(val res: Int){  
     MENU(R.drawable.menu),  
     BACK(R.drawable.back)  
}  
  
val backIcon = Icon.BACK.res  

枚举可以通过字符串匹配名字来获取,也可以得到所以枚举的array,如

val back: Icon = Icon.valueOf("BACK")  
val icons: Array<Icon> = Icon.values()  

枚举也提供一些函数来获取名字和声明的位置

val name: String = Icon.BACK.name()  
val position: Int = Icon.BACK.ordinal()  

枚举根据顺序实现了Comparable接口,所以可以很方便的进行排序

2、封闭类sealed
用sealed修饰的类叫封闭类,它类似枚举enum,如:

sealed class Icon{  
     class Menu(val id: Int) : Icon()  
     class Back(val url: String) : Icon()  
     object None : Icon()  
}  

可以看到它有固定个数的子类,而且子类与父类一起被定义出来。与enum不同的是,枚举的实例是唯一的,而封闭类可以有多个实例,它可以有不同的状态。
封闭类可以与when配合使用,如:

val result: String = when(icon){  
     is Menu -> "xxx" + icon.id  
     is Back -> icon.url  
     is None -> ""  
}  

3、异常Excaption
kotlin中的异常与java中相似,但是kotlin中的异常都是未经检查,表示不会强迫在任何地方使用try/catch。
(kotlin中有throw关键字,但是没有throws关键字)
throw与try/catch的使用与java中一样,但是在kotlin中它们都是表达式都可以返回值。具体见kotlin学习笔记——过程控制和Range表达式

总结:
到本文章为止,kotlin学习笔记系列就结束了,这个系列主要是整理了学习kotlin过程中的一些知识点。但是kotlin学习笔记系列的专栏还会继续,会不定时的分享一些在使用kotlin开发过程中遇到的问题和新的知识,谢谢!

相关文章

网友评论

    本文标题:kotlin学习笔记——枚举、封闭类

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