[英]When not specifying return type, dart shows exact return type for function inside another, but dynamic for top-level
VSCode 为bar的返回类型显示String ,为foo的返回类型显示dynamic 。
void main() {
bar() => 'bar'; // String bar()
}
foo() => 'foo'; // dynamic bar()
Dart 的类型推断算法对于顶级声明和本地声明是不同的。 这是因为顶级声明都可以相互引用,而本地声明只能引用更早的本地声明(或顶级声明,但这些是首先推断出来的,所以此时它们是安全的)。
正因为如此,顶级推理不如本地类型推理聪明,但它也可以在合理的时间内确定。
在顶级和类级别声明上编写类型。 它更安全。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.