【发布时间】:2021-07-19 11:11:36
【问题描述】:
谁能解释一下两者之间的区别 使用这个:
final block = blocks?.first;
还有这个:
final block = blocks!.first;
blocks 在哪里:
List<Block>? blocks
【问题讨论】:
标签: flutter dart dart-null-safety
谁能解释一下两者之间的区别 使用这个:
final block = blocks?.first;
还有这个:
final block = blocks!.first;
blocks 在哪里:
List<Block>? blocks
【问题讨论】:
标签: flutter dart dart-null-safety
当你使用blocks?.first时,blocks的值可以是null,但是当你使用blocks!.first时,你告诉编译器你确定blocks 是 not null。
final block = blocks!.first; 表示您完全确信List<Block>? blocks 在块分配之前已初始化。
同样在final block = blocks?.first;,block 将是可为空的,但在final block = blocks!.first;,block 是不可为空强>.
List<Block>? blocks;
...
// you are not sure blocks variable is initialized or not.
// block is nullable.
final Block? block = blocks?.first;
// you are sure blocks variable is initialized.
// block is not nullable.
final Block block = blocks!.first;
【讨论】: