v6.1.0+1
optional
null参照の取り扱いを回避するためのOptional型の実装
38いいね 23130日間ダウンロード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);
}