繁体   English   中英

当未指定返回类型时,dart 显示另一个函数内部的确切返回类型,但对于顶层函数显示为动态

[英]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.

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