Dart中如何将类型参数用作其他类型的类型参数?
Dart泛型类型参数嵌套使用问题解析
你遇到的编译错误不是因为Dart不支持将泛型类型参数用作其他类型的类型参数,而是函数类型的语法写错了。
Dart里函数类型的正确声明格式是返回值类型 Function(参数类型列表),而非你写的Function<泛型>()形式。要声明一个无参且返回Future<T>的函数类型,正确写法是Future<T> Function()。
修正后的代码示例:
class LoaderWidget<T> extends StatefulWidget { final Future<T> Function() loader; // 正确的函数类型声明 // 其他成员与方法... }
实际上Dart完全支持泛型嵌套使用,比如这里的Future<T>就是把外层类的泛型参数T作为Future的类型参数,属于合法用法。你之前的错误只是混淆了函数类型的语法格式,和泛型嵌套支持无关。
内容的提问来源于stack exchange,提问作者user48956
相关产品推荐
相关产品推荐

