是否可以使用Kotlin';什么时候捕获?
我试着做一些类似的事情:是否可以使用Kotlin';什么时候捕获?,kotlin,Kotlin,我试着做一些类似的事情: data class Data(val valid: Boolean) fun main() { println("Hello, world!!!") when (val data = Data(true)) { data.valid -> println("Valid") else -> println("Invalid") } } 但我
data class Data(val valid: Boolean)
fun main() {
println("Hello, world!!!")
when (val data = Data(true)) {
data.valid -> println("Valid")
else -> println("Invalid")
}
}
但我有一个错误:
Incompatible types: Boolean and Data
是否可以使用
->
左侧的数据
?我知道我可以做is Data
,因此变量显然在范围内,但是有其他方法访问它吗?您可以使用密封类。例如
密封类数据{
对象有效:数据()
对象无效:数据()
伴星{
趣味创建(有效:布尔):数据{
返回if(有效){
数据。有效
}否则{
数据无效
}
}
}
}
用法:
fun main(){
println(“你好,世界!!!”)
何时(Data.create(true)){
is Data.Valid->println(“有效”)
是数据。无效->打印项次(“无效”)
}
}
我不这么认为,左侧只支持:相等、类检查和范围检查。如果要检查布尔条件,则需要在时使用无参数。否。您可以分离变量的声明,然后在{data.valid->…
时写入,但不能在时将数据的定义集成到中。