Dart 的核心庫
Dart 擁有一套豐富的核心庫,為許多日常程式設計任務提供基本功能,例如處理物件集合(dart:collection)、進行計算(dart:math)以及資料編碼/解碼(dart:convert)。更多 API 可在常用包中找到。
庫概覽 (Library tour)
#以下指南介紹瞭如何使用 Dart 核心庫的主要特性。它們僅提供概述,並非詳盡無遺。無論何時您需要有關庫或其成員的更多詳細資訊,請查閱Dart API 參考。
- dart:core
- 內建型別、集合及其他核心功能。此庫會自動匯入到每個 Dart 程式中。
- dart:async
- 支援非同步程式設計,包括 Future 和 Stream 等類。
- dart:math
- 數學常數和函式,以及隨機數生成器。
- dart:convert
- 用於在不同資料表示之間轉換的編碼器和解碼器,包括 JSON 和 UTF-8。
- dart:io
- 適用於可使用 Dart VM 的程式的 I/O,包括 Flutter 應用、伺服器和命令列指令碼。
- dart:js_interop
- 與 Web 平臺互操作的 API。與
package:web一起,dart:js_interop替代了dart:html。
如前所述,這些頁面只是概述;它們僅涵蓋少量 dart:* 庫,不包括第三方庫。
要了解 Dart 在不同平臺上支援的所有庫的概述,請檢視下面的多平臺庫、原生平臺庫和Web 平臺庫列表。
查詢庫資訊的其他地方包括 pub.dev 網站和Dart Web 開發者庫指南。您可以在Dart API 參考中找到所有 dart:* 庫的 API 文件,如果您使用 Flutter,則可在Flutter API 參考中找到。
要詳細瞭解 Dart 語言,請查閱語言文件和示例。
多平臺庫
#下表列出了適用於所有Dart 平臺的 Dart 核心庫。
| 庫 | 說明 |
|---|---|
dart:core所有 Dart 程式的內建型別、集合及其他核心功能。 | |
dart:async, package:async支援非同步程式設計,包括 Future 和 Stream 等類。package:async 提供了圍繞 Future 和 Stream 型別的額外實用工具。 | |
dart:collection, package:collection補充 dart:core 中集合支援的類和實用工具。package:collection 提供了進一步的集合實現以及用於處理集合的函式。 | |
dart:convert, package:convert用於在不同資料表示之間轉換的編碼器和解碼器,包括 JSON 和 UTF-8。 package:convert 提供了額外的編碼器和解碼器。 | |
dart:developer與偵錯程式和檢查器等開發者工具進行互動。 | 僅限原生 JIT 和開發 JavaScript 編譯器 |
dart:math數學常數和函式,以及隨機數生成器。 | |
dart:typed_data, package:typed_data可高效處理固定大小資料(例如,無符號 8 位元組整數)和 SIMD 數字型別的列表。 package:typed_data 提供了更多處理型別化資料的類和函式。 |
原生平臺庫
#下表列出了適用於Dart 原生平臺(AOT 和 JIT 編譯程式碼)的 Dart 核心庫。
| 庫 | 說明 |
|---|---|
dart:ffi, package:ffi允許 Dart 程式碼使用原生 C API 的外部函式介面。 package:ffi 包含實用工具,包括支援轉換 Dart 字串和 C 字串。 | |
dart:io, package:io為非 Web 應用提供檔案、套接字、HTTP 及其他 I/O 支援。 package:io 提供了包括支援 ANSI 顏色、檔案複製和標準退出程式碼等功能。 | |
dart:isolate使用 isolates 進行併發程式設計:類似於執行緒的獨立 worker。 | |
dart:mirrors支援內省和動態呼叫的基本反射功能。 | 實驗性 僅限原生 JIT(不包括 Flutter) |
Web 平臺庫
#下表列出了適用於Dart Web 平臺(編譯為 JavaScript 的程式碼)的 Dart 核心庫。推薦使用的最新工具以粗體顯示,舊工具以斜體顯示(訪問JavaScript 互操作性瞭解更多資訊)。
| 庫 | 說明 |
|---|---|
package:web 基於 JS 互操作構建的輕量級瀏覽器 API 繫結 | 替換所有 dart:* Web 庫。請閱讀遷移指南。 |
dart:js_interop 與 JavaScript 和瀏覽器 API 的互操作。 | 替換 package:js。 |
dart:js_interop_unsafe 動態操作 JavaScript 物件的實用方法。 | 替換 dart:js_util。 |
dart:html (舊版)基於 Web 應用的 HTML 元素及其他資源。 | 請改用 package:web。 |
dart:indexed_db (舊版)支援索引的客戶端鍵值儲存。 | 請改用 package:web。 |
dart:js, dart:js_util, package:js (舊版)用於 JS 互操作的低階原語和高階註解。 | 請改用 dart:js_interop 或 dart:js_interop_unsafe。 |
dart:svg (舊版)可縮放向量圖形。 | 請改用 package:web。 |
dart:web_audio (舊版)瀏覽器中的高保真音訊程式設計。 | 請改用 package:web。 |
dart:web_gl (舊版)瀏覽器中的 3D 程式設計。 | 請改用 package:web。 |