Dart 2.12 现已发布:空安全与互操作性
2023-12-24 22:42:57
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 版本的更多信息,请参阅官方发布说明。