健全的空安全 (sound null safety) https://medium.com/dartlang/announcing-dart-2-12-499a6e689c87 流程分析 https://dart.cn/null-safety/understanding-null-safety#flow-analysis
int definitelyInt(int? aNullableInt) {
if (aNullableInt == null) {
return 0;
}
// If flow analysis reaches this point,
// aNullableInt can safely promote to a non-null int.
return aNullableInt;
}
class Container {
final int? _fillLevel;
Container(this._fillLevel);
check() {
if (_fillLevel != null) {
int i = _fillLevel; // Prior to Dart 3.2, causes an error.
}
}
}
3.2 及以上版本 https://dart.cn/guides/language/evolution#language-versioning
package:lints https://pub.flutter-io.cn/packages/lints package:flutter_lints https://pub.flutter-io.cn/packages/flutter_lints
更新日志 https://github.com/dart-lang/lints/blob/main/CHANGELOG.md#300 立即升级 https://github.com/dart-lang/lints#upgrading-to-the-latest-lints
广泛的跨平台支持 https://dart.cn/overview#platform 与原生 C API 进行互操作 https://dart.cn/guides/libraries/c-interop Java、Kotlin https://dart.cn/guides/libraries/java-interop Objective C 和 Swift https://dart.cn/guides/libraries/objective-c-interop
从 Dart 3.2 开始,我们对原生互操作进行了许多改进:
我们为 C FFI 引入了 NativeCallable.isolateLocal 构造函数,它可以根据任意 Dart 函数创建 C 函数指针。这是一项由 Pointer.fromFunction 提供的扩展功能,只能根据顶级函数创建函数指针。
NativeCallable.isolateLocal https://api.dart.cn/stable/dart-ffi/NativeCallable/NativeCallable.isolateLocal.html Pointer.fromFunction https://api.dart.cn/stable/dart-ffi/Pointer/fromFunction.html
我们更新了 Objective-C 绑定生成器,以使用在 Dart 3.1 中添加的 NativeCallable.listener。该生成器现在可以自动处理包含异步回调的 API,例如 Core Motion 这类此前需要手动编写部分绑定代码的 API。
NativeCallable.listener https://api.dart.cn/stable/dart-ffi/NativeCallable/NativeCallable.listener.html Core Motion https://developer.apple.com/documentation/coremotion
我们为实现 Java 和 Kotlin 互操作而持续改进 package:jnigen。现在能够将 package:cronet_http (适用于 Android 的 Cronet HTTP 客户端的封装容器) 从手写的绑定代码迁移到自动生成的封装容器。
package:jnigen https://dart.cn/guides/libraries/java-interop package:cronet_http https://pub.flutter-io.cn/packages/cronet_http 自动生成的封装容器 https://github.com/dart-lang/http/blob/master/pkgs/cronet_http/jnigen.yaml
我们在 Native Assets 功能方面取得了重大进展,该功能旨在解决与依赖原生代码的 Dart package 分发相关的许多问题。Native Assets 提供统一的钩子来集成构建 Flutter 和独立 Dart 应用所涉及的各种构建系统,从而解决相关问题。您可以查看相关文档获取预览。
Native Assets https://github.com/dart-lang/sdk/issues/50565 文档 http://dart.cn/guides/libraries/c-interop#native-assets
DevTools https://dart.cn/tools/dart-devtools 推出 https://medium.com/p/c8bc1aaf8e5f/ 扩展框架 https://pub.flutter-io.cn/packages/devtools_extensions Serverpod https://pub.flutter-io.cn/packages/serverpod 1.2 版本 https://github.com/orgs/serverpod/projects/4
WebAssembly https://webassembly.org/ Wasm 的垃圾回收支持 https://developer.chrome.com/blog/wasmgc/
CanvasKit Wasm 模块 https://skia.org/docs/user/modules/canvaskit/
在采用 Wasm 的 Flutter Web 准备结束目前的实验状态之前,我们还有一些事情要做:
双重编译:生成 Wasm 和 JavaScript 输出,并在运行时启用功能检测,以支持具备或不具备 Wasm-GC 支持的浏览器。 现代 JavaScript 互操作性:一种新的基于扩展类型的 JS 互操作机制,当针对 JavaScript 和 Wasm 时,可以在 Dart 代码、浏览器 API 和 JS 库之间实现简洁的、类型安全的调用。
扩展类型 https://github.com/dart-lang/language/issues/2727
支持 Wasm 的浏览器 API:新的 package:web,基于现代 JS 互操作机制,取代了 dart:html (及相关库),借此可轻松访问浏览器 API,并且支持在 JS 和 Wasm 目标上使用。
WebAssembly 支持 https://flutter.dev/wasm
dart.dev https://dart.cn/get-dart Flutter 3.16 https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1
原文标题:Dart 3.2 更新盘点
文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
谷歌
+关注
关注
27文章
5862浏览量
103269
原文标题:Dart 3.2 更新盘点
文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
三防平板丨平板终端丨仓库盘点应用
三防平板是一种能够在恶劣环境下使用的电子设备,其具有防水、防尘、抗震等特性,适用于各种场合,包括仓库盘点。在现代物流行业中,对于仓库盘点来说,三防平板不仅能够提高盘点效率,还可以有效地减少人为错误和操作失误。本文将介绍三防平板在
华为辟谣3.2万名科学家移籍
华为辟谣3.2万名科学家移籍 对于近期网络传言的华为3.2万名科学家移籍华为方面表示,造谣者毫无根据、无中生有。 华为辟谣3.2万名科学家移籍以及其他的一些网络传言,比如“华为孟晚舟宣布23万亿
EC-Master最新版本V3.2介绍
EC-Master协议栈是一个经过精心设计和优化的主站协议栈产品,方便客户朋友更好地完成EtherCAT主站控制器的开发工作,支持在不同的嵌入式或非嵌入式(实时)操作系统上运行。现迎来最新版本V3.2更新
一加6T适配OpenHarmony 3.2
OpenHarmony-3.2-Release 已发布,并且已经有好一段时间,本次释放一加 6/6T 相关刷机包,主要升级为 OpenHarmony-3.2-Release 正式版并初步支持部分外设功能(如音频播放和蓝牙),及更新
在 I/O 看未来 | Flutter 和 Dart 最新进展
作者 / Google 开发者框架和语言 (含 Flutter、Dart 和 Go) 产品经理/用户体验总监 Tim Sneath 今年的 Google I/O 大会 在位于加利福尼亚州山景城的总部
在 I/O 看未来 | 社区投稿 - 一文快速总结 Flutter & Dart 的现状和未来
作者 / 郭树煜,谷歌开发者专家 (Flutter Dart GDE),《Flutter 开发实战详解》作者,掘金优秀作者(恋猫de小郭),Github GSY 系列开源项目负责人 原文发布于掘金
如何在yocto linux操作系统上为i.MX8 qm调出4k Dart BCON Camera?
我正在使用带有 yocto linux 的 i.MX8 qm 板。
我已经闪现了 NXP 提供的预构建 yocto 图像(imx-image-multimedia-imx8qmmek.wic.zst)
我已经连接了 4k Dart BCON 相机
但我无法访问相机,有人可以就此问题提出建议或指导我。
发表于 05-06 08:09
评论