出品
开源中国
作者
罗奇奇
11月16日,JetBrains发布了Kotlin1.6.0,其中包含稳定的详尽whens声明、Kover和Kotlin/Native的新内存管理器,1.5.30中发布的其他语言和标准库功能也变得更稳定。
密封(详尽)
Sealedwhen是一项期待已久的功能,如果你的when语句不够详尽,Kotlin编译器发会警告。
Kotlin会详尽地检查封闭类、枚举和布尔类型的表达式,使用那些代数数据类型对域建模时它非常有用。例如对应用程序的用户有不同的契约首选项,建模为一个封闭的类层次结构:
sealedclassContact{dataclassPhoneCall(valnumber:String):Contact()dataclassTextMessage(valnumber:String):Contact()dataclassInstantMessage(valtype:IMType,valuser:String):Contact()}
现在,如果你写了一个表达式:根据不同的联系人偏好返回不同的结果。但是又忘记处理应用程序中的所有类型,编译器将会标记一个错误:
funRates.