标签: null-safety

Dart 列表中的空感知 .firstWhere、.singleWhere、.lastWhere?

.firstWhere((E element) -> bool) -> E我在我的项目中经常使用。当移植它以支持空安全时,我无法干净地处理在List实例中找不到元素的情况。

.firstWhere.singleWhere.lastWhere返回E,但E?在处理列表不包含所需元素的情况时则不然,除了null从例如转换整个列表之外没有其他方法可以返回。List<String>List<String?>使得测试函数担心每个元素可能为空,但事实并非如此。在空安全之前,我只能使用orElse: () => null,但是使用空安全orElse必须返回类型的元素E,因此需要麻烦的转换。

我是否必须null为要使用的每种类型提供替代品orElse,或者是否有其他方法可以使列表检查支持 null 的缺失元素场景?

dart flutter dart-null-safety null-safety

7
推荐指数
2
解决办法
6166
查看次数

参数类型“List&lt;dynamic&gt;?” 无法分配给参数类型“List&lt;dynamic&gt;”

目前,我正在更新 Flutter 项目的代码库,该项目是在以前的版本上开发的。当我们更新到最新版本的 Dart 和 Flutter 后,就会出现该错误。

这里的代码与我们何时从FutureBuilder.

          body: new FutureBuilder<List>(
            future: getData(),
            builder: (context, snapshot) {
              if (snapshot.hasError) print(snapshot.error);

              return snapshot.hasData
                  ? new ItemList(
                      list: snapshot.data, <--- error in here
                    )
                  : new Center(
                      child: new CircularProgressIndicator(),
                    );
            },
          ),
Run Code Online (Sandbox Code Playgroud)

颤动版本:2.2.2

飞镖版本:2.13.3

请帮我指出我应该为此关注哪一部分。谢谢你!

dart flutter flutter-futurebuilder null-safety

3
推荐指数
1
解决办法
2万
查看次数

为什么 null 安全很重要

我目前正在从 java 切换到 kotlin,不断出现的优点之一是 kotlin 是空安全的,默认情况下不能为变量或对象分配空值,但有一些方法可以分配空值。空值。但是我不确定为什么这有好处,Java 不安全会产生什么问题?

到目前为止,在线搜索仅给出了零安全是什么的描述,而不是为什么要实现零安全。提前致谢。

java kotlin kotlin-null-safety nullsafe null-safety

2
推荐指数
1
解决办法
463
查看次数