健全的空安全 (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 開始,我們對原生互操作進行了許多改進:
我們?yōu)?C FFI 引入了 NativeCallable.isolateLocal 構造函數(shù),它可以根據(jù)任意 Dart 函數(shù)創(chuàng)建 C 函數(shù)指針。這是一項由 Pointer.fromFunction 提供的擴展功能,只能根據(jù)頂級函數(shù)創(chuàng)建函數(shù)指針。
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。該生成器現(xiàn)在可以自動處理包含異步回調(diào)的 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
我們?yōu)閷崿F(xiàn) Java 和 Kotlin 互操作而持續(xù)改進 package:jnigen。現(xiàn)在能夠?qū)?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 分發(fā)相關的許多問題。Native Assets 提供統(tǒng)一的鉤子來集成構建 Flutter 和獨立 Dart 應用所涉及的各種構建系統(tǒng),從而解決相關問題。您可以查看相關文檔獲取預覽。
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 準備結束目前的實驗狀態(tài)之前,我們還有一些事情要做:
雙重編譯:生成 Wasm 和 JavaScript 輸出,并在運行時啟用功能檢測,以支持具備或不具備 Wasm-GC 支持的瀏覽器。 現(xiàn)代 JavaScript 互操作性:一種新的基于擴展類型的 JS 互操作機制,當針對 JavaScript 和 Wasm 時,可以在 Dart 代碼、瀏覽器 API 和 JS 庫之間實現(xiàn)簡潔的、類型安全的調(diào)用。
擴展類型 https://github.com/dart-lang/language/issues/2727
支持 Wasm 的瀏覽器 API:新的 package:web,基于現(xiàn)代 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 更新盤點
文章出處:【微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
谷歌
+關注
關注
27文章
6192瀏覽量
105830
原文標題:Dart 3.2 更新盤點
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
什么是 USB 3.2?
什么是USB3.2?USB3.2是一種USB(通用串行總線)標準,它建立在之前的USB3.0和USB3.1標準之上。它的開發(fā)是為了提供更快的數(shù)據(jù)傳輸速度和更高的整體性能。提高數(shù)據(jù)傳輸速度
用Ollama輕松搞定Llama 3.2 Vision模型本地部署
Ollama的安裝。 一,Llama3.2 Vision簡介 Llama 3.2 Vision是一個多模態(tài)大型語言模型(LLMs)的集合,它包括預訓練和指令調(diào)整的圖像推理生成模型,有兩種參數(shù)規(guī)模
使用NVIDIA TensorRT提升Llama 3.2性能
Llama 3.2 模型集擴展了 Meta Llama 開源模型集的模型陣容,包含視覺語言模型(VLM)、小語言模型(SLM)和支持視覺的更新版 Llama Guard 模型。與 NVIDIA 加速
Meta發(fā)布Llama 3.2量化版模型
近日,Meta在開源Llama 3.2的1B與3B模型后,再次為人工智能領域帶來了新進展。10月24日,Meta正式推出了這兩個模型的量化版本,旨在進一步優(yōu)化模型性能,拓寬其應用場景。
亞馬遜云科技上線Meta Llama 3.2模型
亞馬遜云科技近日宣布,Meta公司的新一代模型Llama 3.2已在其平臺上正式上線。該模型包括Meta首款多模態(tài)模型,現(xiàn)已在Amazon Bedrock和Amazon SageMaker中全面可用。
亞馬遜云科技正式上線Meta Llama 3.2模型
亞馬遜云科技宣布,Meta的新一代模型Llama 3.2,包括其首款多模態(tài)模型,現(xiàn)已在Amazon Bedrock和Amazon SageMaker中正式可用。
1.6Gbps至3.2Gbps收發(fā)器SC5101可廣泛用于監(jiān)控安防系統(tǒng)
1.6Gbps至3.2Gbps收發(fā)器SC5101可廣泛用于監(jiān)控安防系統(tǒng)
USB 3.1和USB 3.2有哪些區(qū)別
USB由于標準眾多,即便是之前已經(jīng)確定的,隨著新一代的推出,標準又出現(xiàn)了新的變化。本期我們將單獨拿出USB 3.1和USB 3.2,它們外觀基本相似,但是在參數(shù)對比上有些區(qū)別,具體不同一起往下看。
USB 3.2雙通道操作:您需要了解的內(nèi)容
電子發(fā)燒友網(wǎng)站提供《USB 3.2雙通道操作:您需要了解的內(nèi)容.pdf》資料免費下載
發(fā)表于 08-30 10:09
?0次下載
ModusToolbox? 3.2 Dashboard工程生成錯誤的原因?
在生成工程時,出現(xiàn)如下錯誤:
Opening project creator from C:/Users/XXX/ModusToolbox/tools_3.2/project-creator
發(fā)表于 07-26 06:30
手持PDA終端在固定資產(chǎn)盤點中的應用方案
隨著科技的迅猛發(fā)展,手持式數(shù)據(jù)采集(PDA)終端已成為企業(yè)盤點固定資產(chǎn)不可或缺的工具。借助條碼掃描及無線射頻識別(RFID)技術,手持PDA終端極大地促進了盤點效率和準確性的提升。以下為手持PDA
三防平板丨平板終端丨倉庫盤點應用
三防平板是一種能夠在惡劣環(huán)境下使用的電子設備,其具有防水、防塵、抗震等特性,適用于各種場合,包括倉庫盤點。在現(xiàn)代物流行業(yè)中,對于倉庫盤點來說,三防平板不僅能夠提高盤點效率,還可以有效地減少人為錯誤和操作失誤。本文將介紹三防平板在
評論