首页 > 解决方案 > 为什么飞镖不能推断对象属性的空安全性?

问题描述

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

科特林代码

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 不能呢?

标签: flutterdart

解决方案


推荐阅读