13426109659
webmaster@21cto.com

Dart 3.9 来了:有啥重要的新功能?

编程语言 0 26 15小时前
图片

21CTO导读:

各位开发者们,Dart 语言团队近日正式发布了Dart 3.9 版本,其中包含多项更新,其目标是在提升开发速度、安全性和智能特性。

在本文中,我将深入浅出地讲解其中最重要的更新,并分享它们对 Flutter 和 Dart 开发者的重要性。

我们现在开始。

🔑 Dart 3.9 中的关键更新

1. 改进的空安全性


Dart 现在在检查类型提升、可达性和赋值时,会默认所有地方都视为空安全(Null Safety)。这表示着 Dart 可以更好地警告你在写有关不可达或不安全的代码。


更严格?没错。更加安全?绝对是这样。


👉 举例:如果 Dart 检测到变量永远不会存在null,则不需要额外检查。

2. 健全性修复

何谓健全性修复(Soundness Fix)?这是关于如何让 Dart 的类型系统更加可靠。在 Dart 3.9 之前,你有时会使用错误的参数类型调用函数getter,而 Dart 不会报错,直到你的应用程序崩溃为止。


❌ 之前的代码:


class Box<T> {
  T get value => ((int i) => i.isEven) as T;
}
void main() {
  var box = Box<dynamic>();
  // Dart 允许这样做,但不安全!
  var result = box.value("hello");
  print(result);
}

这里.value期望一个int,但是你传递的是String,因此崩溃即将来临。

在 Dart 3.9 之后:


现在,如果您误用该类似之函数,Dart 会立即抛出运行时错误:

ErrorClosure call with mismatched arguments

翻译过来的错误闭包调用参数匹配。

💡为什么如此重要: Dart 堵住了一个漏洞并阻止了不安全的调用→更安全的应用程序。

3. Dart 和 Flutter MCP 服务器

这对于 AI 驱动的编码助手来说,简直是一个巨大的飞跃。MCP服务器允许 GitHub Copilot、Cursor 和 Gemini CLI 等工具访问你的项目上下文。

通过这种方式,人工智能可以做到:

  • 自动修复运行时错误
  • 管理依赖项
  • 为您编写或更正代码


可以将其视为让 AI 更深入地了解你的 Dart/Flutter 应用程序。

4. 更快的 Dart CLI

dart analyze诸如、dart fix、 与类似的命令dart format现在速度据说提高了 50%。为什么?因为 Dart 对分析服务器使用预先 (AOT) 编译的代码,而不是每次都进行编译。


💡 这意味着更少的等待,更多的编码。

5. pub 客户端更新

依赖管理变得更智能了。现在开发者们可以使用Git 标签进行版本解析了。


以下一例子:

dependencies:
    my_dependency:
        git:
            url:https://github.com/example/my_dependency
            tag_pattern:v{{version}}
    version:^2.0.1


Dart 将v2.0.1根据标签自动获取从开始及更高版本。

💡 好消息:Flutter SDK 约束现在得到尊重pubspec.yaml,确保您的整个团队保持使用相同的 SDK 版本。

6.交叉编译支持

Dart 现在支持ARM32RISC-V (Linux) 的编译。


这对于嵌入式系统、物联网设备和面向未来的项目是特别有用的能力。


7. 旧功能弃用


  • 32 位 x86支持已弃用。这主要影响非常老旧的模拟器和设备。
  • 现代平台(ARM64、x86_64)仍然受完全支持。

8. dart build 更新

现在这个新的dart build命令具有新的命令结构:


# 旧版

dart build -f exe <target>
# 新的

dart build cli --target=<target>

但仍处于预览阶段(测试版),但它朝着简化构建迈出了坚定一步。

⚡ 结语

总体来说,Dart 3.9 专注于性能、安全性和更智能的工具


  • 通过零安全性和健全性修复,提高应用程序的安全
  • 更快的 CLI 命令
  • 更智能的依赖管理
  • 了解项目的人工智能助手


作为 Flutter 开发人员,这些变化意味着我们花更少的时间来“对抗”Bug与错误,而可花更多的时间来构建新功能。

👉 你已尝试过 Dart 3.9 吗?你最喜欢的更新是什么?欢迎留言。

作者:洛逸

评论