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

标签 dart

VSCode 对于 bar 的返回类型显示 String,对于 foo 的返回类型显示 dynamic

void main() {
  bar() => 'bar'; // String bar()
}

foo() => 'foo'; // dynamic bar()

最佳答案

Dart 的类型推断算法对于顶级声明和局部声明是不同的。 这是因为顶级声明都可以互相引用,而局部声明只能引用较早的局部声明(或顶级声明,但这些声明是首先推断的,因此此时它们是安全的)。

因此,顶层推理不如局部类型推理聪明,但它也可以在合理的时间内确定。

在顶级和类级别声明上编写类型。这样更安全。

关于dart - 当不指定返回类型时,dart 显示另一个函数内部的精确返回类型,但对于顶层是动态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72662621/

相关文章:

dart - 我可以从Angular.Dart收回对URL哈希片段的控制吗?

flutter - 如何使用条件来在Flutter中定义图标颜色?

firebase - 使用 StreamBuilder 时如何将 serverTimestamp 转换为 String

dart - 断言未通过pub serve执行

dart - Flutter - 在同一页面上添加卡片和文本列表后出现异常

dart - Dart泛型未按照文档进行分类

android - 如何在 Flutter 应用程序中显示原生 Android View ?

自定义时间触发功能中的 Flutter 后台服务

Flutter dart 将配置单元保存的数据导出到文件以供稍后检索

flutter - 如何首先显示最近的项目?