<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Dart 3.2 更新盤點

      作者 / Kevin Moore 和 Michael Thomsen

      我們隆重宣布推出 Dart 3.2,這一版本針對以下方面做出了改進: 新增了一項語言功能,可對私有 final 字段進行非空升級;通過新增的互操作功能改善了開發者體驗;支持 DevTools 的擴展程序;并更新了我們的 Web 路線圖,包括提供對 Wasm (又名 WebAssembly) 的支持。

      私有 final 字段的非空升級

      自我們在 Dart 2.12 中引入 健全的空安全 (sound null safety) 以來已過去幾年時間。您可以借助空安全聲明哪些類型可為空 (可以包含值或 null),哪些類型不可為空 (始終包含值)。通過將空安全與 流程分析 相結合,能夠檢測何時可以將可為空的變量 "升級" 為更安全的非空類型:

      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; 
      }
      

      自 Dart 2.12 發布以來,類型升級一直是空安全的核心部分,但僅限于局部變量。字段或頂級變量無法升級,例如以下代碼示例:

      class Container {
        final int? _fillLevel;
        Container(this._fillLevel);
        check() {
          if (_fillLevel != null) {
            int i = _fillLevel; // Prior to Dart 3.2, causes an error.
          }
        }
      }
      

      這種局限性由多種復雜的情況導致。在這些情況中,流程分析無法安全地確定字段何時或如何變化。以類上的字段升級為例,如果子類使用 getter 覆蓋字段,可能會存在問題,因為有時會返回 null。

      在 Dart 3.2 中,我們改進了流程分析引擎,現在能夠對私有 final 字段實施類型升級。現在,上面的代碼示例可以正常運行。您可以這樣理解: 對于私有 final 字段,它的值在初始分配后永不更改,因此僅檢查一次也是安全的。私有 final 字段升級從 Dart 3.2 起推出,并將應用于配置 3.2 及以上版本 Dart SDK 的項目。

      在 package:lints 3.0 中加入新的代碼分析選項

      針對代碼分析,我們還對 package:lints 中的標準代碼分析規則進行了一些改進。此 package 包含默認和推薦的靜態分析規則集,適用于任何根據 dart create 或 flutter create (通過 package:flutter_lints — package:lints 的擴展) 創建的新項目。

      此 lint 集新的主要版本 (版本 3.0) 現已推出。我們在此修訂版的核心集中添加了六個 lint,在推薦集中添加了兩個 lint,可用于驗證 pubspec URL,以及驗證是否使用正確的參數調用集合方法等。您可以查看 更新日志 獲取完整的更改列表。3.0 版本將成為即將發布的新項目的默認版本。您也可以 立即升級 現有項目。

      Dart 互操作性更新

      提供 廣泛的跨平臺支持 一直是 Dart 的核心原則。但是,即使一行 Dart 代碼可以做到無需更改就能在所有平臺上運行,大型應用通常仍然需要與現有代碼進行互操作。現有代碼指舊項目的代碼,或其他庫中可用的 API 或系統 API。我們在這一領域投入了大量精力,首先是用于 與原生 C API 進行互操作 的 FFI。我們目前正在努力擴大該領域,以支持與 Java、KotlinObjective C 和 Swift 的互操作。您可以閱讀下文 Dart Web 部分,了解有關 JS 互操作性的精彩更新。

      從 Dart 3.2 開始,我們對原生互操作進行了許多改進:

      • 我們為 C FFI 引入了 NativeCallable.isolateLocal 構造函數,它可以根據任意 Dart 函數創建 C 函數指針。這是一項由 Pointer.fromFunction 提供的擴展功能,只能根據頂級函數創建函數指針。

      • 我們更新了 Objective-C 綁定生成器,以使用在 Dart 3.1 中添加的 NativeCallable.listener。該生成器現在可以自動處理包含異步回調的 API,例如 Core Motion 這類此前需要手動編寫部分綁定代碼的 API。

      • 我們為實現 Java 和 Kotlin 互操作而持續改進 package:jnigen。現在能夠將 package:cronet_http (適用于 Android 的 Cronet HTTP 客戶端的封裝容器) 從手寫的綁定代碼遷移到 自動生成的封裝容器

      • 我們在 Native Assets 功能方面取得了重大進展,該功能旨在解決與依賴原生代碼的 Dart package 分發相關的許多問題。Native Assets 提供統一的鉤子來集成構建 Flutter 和獨立 Dart 應用所涉及的各種構建系統,從而解決相關問題。您可以查看相關 文檔 獲取預覽。

      適用于 Dart package 的 DevTools 擴展程序

      Dart DevTools 是一套用于支持純 Dart 和 Flutter 應用的調試及性能工具。我們在 Dart 3.2 和 Flutter 3.16 中 推出 了新的 擴展框架,讓 package 作者能夠直接在 DevTools 中為其 package 構建自定義工具。因此,包含框架的 pub.dev package 能夠提供特定于其用例的自定義工具。例如,Serverpod 的作者一直在努力為其 package 構建 DevTools,并且很高興在即將發布的 1.2 版本 中提供 DevTools 擴展程序。

      △ 計劃納入即將發布的 ServerPod 1.2 版本中的 DevTools 擴展程序

      Dart Web 和 Wasm 更新

      Wasm (也稱為 WebAssembly) 是一種在 Web 瀏覽器上非常棒的新指令格式,還提供可移植、獨立于平臺的二進制格式,以適用于現代瀏覽器。我們正在將高級托管語言 (如 Dart) 的垃圾回收功能添加到 Wasm 標準中。從 Chrome 119 開始默認啟用 Wasm 的垃圾回收支持 (也稱為 Wasm-GC)。下一個穩定版本 Firefox 120 也將支持 Wasm-GC。那么 Dart、Flutter 和 Wasm-GC 現在是什么情況呢?

      Dart-to-Wasm 編譯器幾乎配備所有功能。我們對性能和兼容性非常滿意,正在進一步關注邊緣情況,以確保在各種場景中實現暢快運行。

      對于 Flutter Web,我們完成了一個新的 "Skwasm" 渲染引擎開發。為了最大限度提高性能,Skwasm 通過 wasm-to-wasm 綁定,將編譯后的應用代碼直接連接到自定義 CanvasKit Wasm 模塊。這是 Flutter Web 多線程渲染支持的首次迭代,進一步提高了幀時間。

      在采用 Wasm 的 Flutter Web 準備結束目前的實驗狀態之前,我們還有一些事情要做:

      • 雙重編譯 : 生成 Wasm 和 JavaScript 輸出,并在運行時啟用功能檢測,以支持具備或不具備 Wasm-GC 支持的瀏覽器。
      • 現代 JavaScript 互操作性 : 一種新的基于 擴展類型 的 JS 互操作機制,當針對 JavaScript 和 Wasm 時,可以在 Dart 代碼、瀏覽器 API 和 JS 庫之間實現簡潔的、類型安全的調用。
      • 支持 Wasm 的瀏覽器 API : 新的 package:web,基于現代 JS 互操作機制,取代了 dart:html (及相關庫),借此可輕松訪問瀏覽器 API,并且支持在 JS 和 Wasm 目標上使用。

      我們正在開始將大量的內部項目遷移到 package:web 和新的 JS 互操作機制,并希望在下一個穩定版本中向您提供更多更新。與此同時,您可以在我們的 WebAssembly 支持 頁面上獲取最新的詳細信息。

      開始體驗

      以上就是我們要與您分享的所有內容。Dart 3.2 現已在 dart.dev 中推出,您也可以通過我們將在后續介紹的 Flutter 3.16 版本使用此產品。盡情體驗新版 Dart 吧!

      posted on 2024-01-07 18:03  Flutter社區  閱讀(429)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲日韩精品无码一区二区三区| 亚洲色欲色欲www| 国产激情无码一区二区三区| 久久久久国色av免费看| 日韩一区二区三区东京热| 神木县| 亚洲精品综合网二三区| 一区二区三区激情都市| 欧洲精品色在线观看| 欧美视频二区欧美影视| 在线中文字幕第一页| 久久涩综合一区二区三区 | 在线精品自拍亚洲第一区| 91福利国产午夜亚洲精品| 人人澡人人透人人爽| 成人乱人伦精品小说| 亚洲少妇一区二区三区老| 绍兴市| 无码高潮爽到爆的喷水视频app| 人妻聚色窝窝人体WWW一区| 性虎精品无码AV导航| 神马久久亚洲一区 二区| 久久精品国产亚洲av忘忧草18 | 无遮无挡爽爽免费视频| 国产精品久久一区二区三区| 人妻出轨av中文字幕| 亚洲精品国产av成人网| 欧美一区二区三区欧美日韩亚洲| 国产在线无码不卡播放| 久久人妻精品白浆国产| 日韩中文字幕一二三视频| 国产女人18毛片水真多1| 91毛片网| 日韩无专区精品中文字幕| 久久婷婷五月综合色一区二区| 国产精品国产高清国产专区| 久久亚洲精品无码播放| 夜鲁鲁鲁夜夜综合视频| 久久精品国产成人午夜福利| 一亚洲一区二区中文字幕| 国产福利精品一区二区|