表示值可以是 Future<T>
或 T
的类型。
此类声明是一个公共替身,用于表示内部未来或值泛型类型,该类型不是一个类类型。对此类的引用将被解析为内部类型。
任何类扩展、混入或实现 FutureOr
都会导致编译时错误。
示例
// The `Future<T>.then` function takes a callback [f] that returns either
// an `S` or a `Future<S>`.
Future<S> then<S>(FutureOr<S> f(T x), ...);
// `Completer<T>.complete` takes either a `T` or `Future<T>`.
void complete(FutureOr<T> value);
高级
FutureOr<int>
类型实际上是类型 int
和 Future<int>
的“类型联合”。这种类型联合被定义为,FutureOr<Object>
既是 Object
的子类型也是超类型(子类型因为 Object
是联合中的一种类型,超类型因为 Object
是联合中两种类型的超类型)。这意味着 FutureOr<Object>
等价于 Object
。
作为推论,FutureOr<Object>
等价于 FutureOr<FutureOr<Object>>
,FutureOr<Future<Object>>
等价于 Future<Object>
。
属性
- hashCode → int
- 此对象的哈希码。无设置器继承
- runtimeType → Type
- 表示对象运行时类型的表示。无设置器继承
方法
-
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。继承
-
toString(
) → String - 此对象的字符串表示。继承
运算符
-
operator ==(
Object other) → bool - 相等运算符。继承