flutter - 如何在 Dart 的 Sound Null Safety 中增加/减少可为空的表达式:`!++`?
问题描述
我在Dart中使用Sound Null Safety,我有以下代码
int? _counter;
void _incrementCounter() {
setState(() {
if (_counter!=null)
_counter++;
});
}
现在,由于 _counter 不是局部变量,它不能被提升(参见这个其他线程以了解原因),所以我必须通过添加bang 运算符( )告诉Dart我确定_counter
它不为空。于是我写了!
_counter!++;
但这不起作用:我收到错误消息
对不可赋值表达式的非法赋值。
那么,有没有一种方法可以解决这个问题而无需显式编写
_counter = _counter! + 1;
解决方案
它今天按预期工作,如果_counter = _counter! + 1;
您保留int?
为_counter
.
将来,关于Dart Null-Asserting Composite Assignment 提案,这可能会发生变化。
推荐阅读
- sparql - 如何使用 SPARQL 查询在 rdf:RDF/XML 中的描述中获取信息?
- vb.net - 如何用 try-catch 替换 On Error Resume Next?
- java - 缓存 AmazonSQS 对象好吗
- swift - 具有 3 列的 UICollectionView 不会产生所需的结果
- c# - C# 从文本文件中检索不同的数据类型数据并将其存储到变量中
- javascript - 无论窗口大小如何,都相对于窗口定位元素
- python - Python 3 - 将用户名发送到 Gmail 后的 Socket SMTP 超时
- django - 如何在 Django 管理页面上合并表单中的默认字段
- python - 傅里叶变换作为python中的降维技术
- javascript - 根据用户输入创建电话号码链接