flutter - 为什么飞镖不能推断对象属性的空安全性?
问题描述
来自 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 不能呢?
解决方案
推荐阅读
- html - 在 HTML 中使星期六和星期日不可选择
- jflex - JFlex 参数化令牌
- pic - 将 PIC24E 与 ICD3 连接
- c# - 使用get-set实现const DateTime?
- angular - 在继续打字之前等待函数执行完成
- java - 重新启动应用程序时,如何在 EditText 中保留字符串/int 值?
- node.js - 得到“承诺{
“Log.save();”处的错误 - Mongodb - php - 如何从 PhpStorm 调试 Docker 容器中的测试和/或运行代码
- gitlab - 为什么 gitlab 备份 [跳过] 一些存储库?
- sas - 对子项进行分组并显示父项总和