Dart 可选类型扩展
2021-07-01 本文已影响0人
SoaringHeart
final String? a = null;
DDLog(a.runtimeType); // Null
DDLog(a.or(() => "456")); // 456
DDLog(a.or((){
return "111";
})); // 111
extension GetDynamicExt<T> on T {
/// 返回可选值或者 `else` 闭包返回的值
/// 例如. nullable.or(else: {
/// ... code
/// })
T or(T Function() block) {
return this ?? block();
}
}