flutter - Dart - null 感知运算符,为什么!需要吗?
问题描述
我们有:
final Widget? body;
稍后在代码中:
final content = Column(
children: [
...items,
if (body != null) body!
],
);
为什么我必须!
在正文之后添加符号?
没有!
我收到:
元素类型“小部件?” 不能分配给列表类型“小部件”。
在 pubspec.yaml
environment:
sdk: '>=2.12.0-0 <3.0.0'
解决方案
变量或函数后面的感叹号表示可空变量或函数转换为不可空值。因为您可能知道小部件不能为空。
const insets = EdgeInsets.all(10.0);
Widget? widget1 = insets;
Widget widget2 = insets;
assert(widget1! == widget2);
推荐阅读
- python - 对一长串整数进行排序是否比每次取最大值更有效?
- c++ - C++中的数组打印
- javascript - 装饰器 addEventListener 绑定不起作用
- assembly - 与返回地址何时从堆栈中弹出相关的 ESP 指针
- php - 从同一个表中添加多个外部字段以建模的雄辩方式
- java - 'chcp.com' 不是内部或外部命令、可运行程序或批处理文件
- python - 如何在数据透视图中对工作日进行排序?
- docker - ksqlDB报错:获取Kafka集群信息失败
- python-3.x - for循环追加后扩展列表失败
- android - Kotlin Flow:从不收集 emitAll