繁体   English   中英

为什么 Flutter 中的动态类型函数不能返回正确的类型?

[英]Why can't dynamically-typed function in Flutter return the correct type?

我有这个功能:

U on<T, U> (T value, T defaultValue, U Function (T value) builder) => builder(value ?? defaultValue);

如果我像这样使用它:

var a = "Hello";
var b = "World";
final result = on(a, b, (value) => Text(value))

在构建器回调参数中,值类型始终是动态的。 为什么它不能与参数 a 和 b 具有相同的类型?

Dart 目前不支持参数列表中的推理。 但是正在跟踪此问题#731

现在你需要明确输入:

final result = on(a, b, (String value) => Text(value))

这至少强制了a bbuilder共享相同的类型。

随着即将到来的implicit-dynamic分析器规则,像这样的事情将更容易被发现,并且增加的维护开销有望让 dart 语言维护者重新考虑推理问题的优先级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM