v6.1.0+1
optional
Optional 类型的实现,有助于避免处理空引用
38喜欢 231近 30 天下载150Pub 分数
AndroidiOSWebmacOSWindowsLinux
Dart 的 Optional 类型的实现
^1.15.0>=5.0.0 <6.0.0^1.16.5^1.11.0>=1.10.0 <2.0.0^1.0.3以下为英文项目原文快照,最新内容请访问 GitHub。
https://github.com/tonio-ramirez/optional.dart/workflows/tests/badge.svg?branch=master Coverage Status
Optional.dart is an implementation of the Optional type, inspired by Java 8's Optional class.
Optional helps avoid null reference errors by wrapping values in an object that holds information
regarding whether the value is present or not.
For example, when applying a set of operations to a value, any of which might return null,
you can get rid of the null checks by using Optional.map():
String? getString() {
// ..
if (condition) {
return null;
} else {
return "12";
}
}
int? calculateSomething(String str) {
// ...
if (someCondition) {
return null;
} else {
return 3 + int.parse(str);
}
}
double? calculateSomethingElse(int val) {
// ...
if (anotherCondition) {
return null;
} else {
return val * 1.42;
}
}
void main() {
// before
String? str;
int? i;
double? d;
str = getString();
if (str != null) {
i = calculateSomething(str);
}
if (i != null) {
d = calculateSomethingElse(i);
}
if (d != null) {
print(d);
}
// with Optional
Optional.ofNullable(getString())
.map(calculateSomething)
.map(calculateSomethingElse)
.ifPresent(print);
}