是什么意思 ”!。”在Dart? “!。”的等效代码是什么? ? -扑

时间:2020-09-16 03:05:34

标签: flutter dart

我要扩展FileImage。

但是我发现有一些代码需要“不可为空”功能:

  Future<ui.Codec> _loadAsync(FileImage key, DecoderCallback decode) async {
    assert(key == this);

    final Uint8List bytes = await file.readAsBytes();

    if (bytes.lengthInBytes == 0) {
      // The file may become available later.
      PaintingBinding.instance!.imageCache!.evict(key);
      throw StateError('$file is empty and cannot be loaded as an image.');
    }

    return await decode(bytes);
  }

“ PaintingBinding.instance!.imageCache!.evict(key);”的等效代码是什么? ?

1 个答案:

答案 0 :(得分:0)

说你有

int? foo = 1; // foo is nullable. 

当您执行以下操作时:

foo!.toString(); 

您要告诉编译器我知道foo不是null,让我继续。因此,它等效于:

assert(foo != null);
foo.toString();

这实际上称为bang运算符,如果foonull,则会出现错误。