返回

Dart 2.12 现已发布:空安全与互操作性

Android

Dart 2.12 版本现已正式发布,带来一系列新特性和改进,包括:

空安全

空安全是我们最新主打的一项生产力强化功能,旨在帮助您规避空值错误,这种错误通常很难被发现。空安全系统可以追踪程序中的空值,并在编译时发出警告或错误,提示您对代码进行修改以避免空值错误。

要启用空安全,只需在项目的 pubspec.yaml 文件中添加以下行:

environment:
  sdk: ">=2.12.0-0 <3.0.0"

有关空安全的更多信息,请参阅官方文档。

Dart FFI 稳定版

Dart FFI 是一个互操作机制,支持调用以 C 语言编写的现有代码。这使得您可以利用丰富的 C 语言库来增强 Dart 程序的功能。

要使用 Dart FFI,您需要先安装 ffi 包:

dart pub add ffi

然后,您就可以在 Dart 代码中调用 C 函数了。例如,以下代码调用 C 库中的 printf 函数来打印一条消息:

import 'dart:ffi';

final printf = ffi.DynamicLibrary.open('libc.so.6').lookupFunction<
    Int32 Function(Pointer<Utf8> format),
    int Function(Pointer<Utf8> format)>;

main() {
  printf('Hello, world!\n');
}

有关 Dart FFI 的更多信息,请参阅官方文档。

WebAssembly 支持

Dart 2.12 版本还提供了对 WebAssembly 的更多现代浏览器的支持,包括 Safari 和 Firefox。这使得您可以将 Dart 代码编译为 WebAssembly 并将其部署到任何支持 WebAssembly 的浏览器中。

要将 Dart 代码编译为 WebAssembly,您可以使用 dart2wasm 工具。例如,以下命令将 main.dart 文件编译为 main.wasm 文件:

dart2wasm main.dart -o main.wasm

然后,您就可以将 main.wasm 文件部署到您的网站上。

有关 Dart WebAssembly 的更多信息,请参阅官方文档。

测试包性能优化

Dart 2.12 版本还包含对 test 包的性能优化。这使得运行测试套件的速度提高了 20% 以上。

其他增强功能和错误修复

Dart 2.12 版本还包含诸多其他增强功能和错误修复,包括:

  • 改进了对泛型方法的类型推断
  • 改进了对循环展开的优化
  • 改进了对常量表达式的优化
  • 修复了多个错误

有关 Dart 2.12 版本的更多信息,请参阅官方发布说明。