如何在Dart中使用可选功能以实现安全性

时间:2020-09-03 01:56:12

标签: flutter dart

我发现此软件包为Dart实现了Optional:https://pub.dev/packages/optional/example

在示例中,它执行以下操作:

void filterExample() {
  final hello = Optional.of('hello');
  final world = Optional.of('world');
  final name = Optional.of('harry');

  for (var o in [hello, world, name]) {
    final filtered = o.filter((v) => v.startsWith('h'));
    print(filtered.isPresent);
  } // prints "true", "false", "true"
}

但是如何强制某个类型的变量为Optional?我想拥有Optional<String>Optional<int>等,但是我不得不在一开始就赋予一个值。

我能想到的最接近的

final anEmpty = Optional.ofNullable(null);

在示例中已经存在,但是Nullable是什么?如果我这样做,就无法将值约束为Stringint,可以将其更改为任何值。我想在使用Optional时坚持使用强打字。

如果该库无法做到这一点,那么如何创建支持模板的简单Optional类型,使我可以使用Optional<String>Optional<int>等?

1 个答案:

答案 0 :(得分:-1)

您正在寻找的行为(如果为null,则执行其他操作;否则,则执行其他操作)。

这基本上是一个空检查,如果不为空,则等于左手,如果为空,则等于右手。示例:??

这能回答您的问题吗?抱歉,我没有使用过该软件包,也没有必要。