为什么 dart 不能推断对象属性的空安全?

时间:2021-03-10 20:32:55

标签: flutter dart

来自 Kotlin 背景,可以确保像这样的属性的 null 安全:

Kotlin 代码

data class User(val name: String?, val age: Int?)

fun test(user: User) {
    if(user.name != null) {
      val name:String = user.name // Kotlin can ensure that name is always non null
    } 
}

然而令我惊讶的是,这在 Dart 中是不可能的:

builder: (context, AsyncSnapshot<List<Foo>> snapshot) {
    if (snapshot.data != null) {
       final List<Foo> foo = snapshot.data; //needs snapshot.data! to work
    }
}

例如,我想 snapshot.data 对象可以在其他线程中设置为 null,但是如果 Kotlin 可以确保该行为,为什么 Dart 不能?

0 个答案:

没有答案