我发现此软件包为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
是什么?如果我这样做,就无法将值约束为String
或int
,可以将其更改为任何值。我想在使用Optional时坚持使用强打字。
如果该库无法做到这一点,那么如何创建支持模板的简单Optional类型,使我可以使用Optional<String>
,Optional<int>
等?
答案 0 :(得分:-1)
您正在寻找的行为(如果为null,则执行其他操作;否则,则执行其他操作)。
这基本上是一个空检查,如果不为空,则等于左手,如果为空,则等于右手。示例:??
这能回答您的问题吗?抱歉,我没有使用过该软件包,也没有必要。