收藏

flutter 一些符号

2021-12-09  本文已影响0人  银弹星空

Dart 语言已支持健全的空安全机制!

当你选择使用空安全时,代码中的类型将默认是非空的,意味着 除非你声明它们可空,它们的值都不能为空。有了空安全,原本处于你的 运行时 的空值引用错误将变为 编辑时 的分析错误。

有了空安全,下面代码中所有的变量都是非空的:

var i = 42; // Inferred to be an int.
String name = getFileName();
final b = Foo();

1.?

若你想让变量可以为 null,只需要在类型声明后加上 ?。

int? aNullableInt = null;

2.!

用强制非空操作符 (!) 将可空的类型转为非空 (V)。

return blockTypes[key]!;

3.[]

使用 [] 将一系列参数包裹起来作为位置参数:

String say(String from, String msg, [String? device]) {
  var result = '$from says $msg';
  if (device != null) {
    result = '$result with a $device';
  }
  return result;
}

下面是不使用可选参数调用上述函数的示例

assert(say('Bob', 'Howdy') == 'Bob says Howdy');

下面是使用可选参数调用上述函数的示例:

assert(say('Bob', 'Howdy', 'smoke signal') ==
    'Bob says Howdy with a smoke signal');

4.extension on

扩展方法
扩展方法是向现有库添加功能的一种方式。你可能已经在不知道它是扩展方法的情况下使用了它。例如,当您在 IDE 中使用代码完成功能时,它建议将扩展方法与常规方法一起使用。

extension NumberParsing on String {
  int parseInt() {
    return int.parse(this);
  }
  // ···
}
上一篇 下一篇

猜你喜欢

热点阅读