kotlin - Android开发中密封类的实例
问题描述
我是 Kotlin 的新手。我正在学习sealed classes
,但我不明白如何在 Android 开发中使用它。能给我举个例子?
解决方案
当您想要定义一个封闭的子类列表时,它很有用。
您可以使用数据类扩展密封类的可能性。例子:
fun eval(expr: Expr): Double = when(expr) {
is Const -> expr.number
is Sum -> eval(expr.e1) + eval(expr.e2)
NotANumber -> Double.NaN
// the `else` clause is not required because we've covered all the cases
}
宣言:
sealed class Expr
data class Const(val number: Double) : Expr()
data class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()
推荐阅读
- c# - MemoryStream,kb 有多少字节?
- batch-file - 提取字幕文件然后将字幕文件硬编码为原始mkv文件的bat文件
- php - 如何在条件中放置多个间隔“新日期时间”(php)
- ajax - 如何在多用户 Laravel + Vuejs 应用程序中锁定用户正在更新的记录
- javascript - chai 中的 _obj 是什么?
- reactjs - 从表中传递表行对象并使用 Redx-Form 对其进行编辑
- react-native - 如何在子项中更新复选框的外观或状态
- assembly - 什么时候使用汇编语言?
- language-agnostic - 等效于 ADT 上的模式匹配的功能
- python - 使用 PyPDF2 更改 pdf 的页面颜色