Dart 簡介
要開始使用 Flutter,你需要對 Dart 程式語言有一些瞭解,因為 Flutter 應用就是用它編寫的。本頁是 Dart 的一個簡單介紹,如果你能輕鬆閱讀程式碼示例,請隨意跳過本頁。你不需要成為 Dart 專家即可繼續本系列。
Dart
#Flutter 應用程式使用 Dart 構建,這種語言對於編寫過 Java、Javascript 或任何其他類 C 語言的人來說都會很熟悉。
以下示例是一個小程式,它從 dart.dev 獲取資料,解碼返回的 json,並將其列印到控制檯。如果你對理解此程式有信心,請隨意跳到下一頁。
import 'dart:convert';
import 'package:http/http.dart' as http;
class Package {
final String name;
final String latestVersion;
final String? description;
Package(this.name, this.latestVersion, {this.description});
@override
String toString() {
return 'Package{name: $name, latestVersion: $latestVersion, description: $description}';
}
}
void main() async {
final httpPackageUrl = Uri.https('dart.dev', '/f/packages/http.json');
final httpPackageResponse = await http.get(httpPackageUrl);
if (httpPackageResponse.statusCode != 200) {
print('Failed to retrieve the http package!');
return;
}
final json = jsonDecode(httpPackageResponse.body);
final package = Package(
json['name'],
json['latestVersion'],
description: json['description'],
);
print(package);
}此程式包含兩部分:Package 類宣告和業務邏輯,業務邏輯包含在 main 函式中。
Package 類包含了在使用 Dart 中的類時會用到的許多最常見的功能。這個類有三個成員,並定義了一個建構函式和一個方法。
Dart 語言是型別安全的;它使用靜態型別檢查來確保變數的值始終與變數的靜態型別匹配。在定義類時,使用 String 註釋成員是必需的,但由於型別推斷,通常是可選的。在此示例中的 main 函式中,有許多行以 final variableName = 開頭。這些行是型別安全的,儘管沒有明確給出型別。
Dart 還內建了健全的空安全。在示例中,description 成員宣告為 String? 型別。String? 末尾的 ? 表示此屬性可以為 null。其他兩個成員不能為 null,如果你嘗試將它們設定為 null,程式將無法編譯。你可以在 Package 類的建構函式中看到這一點。它接受兩個必需的位置引數和一個可選的命名引數。
示例中接下來是 main 函式。所有 Dart 程式,包括 Flutter 應用程式,都以 main 函式開始。該函式展示了幾個基本的 Dart 語言特性,包括使用庫、將函式標記為 async、進行函式呼叫、使用 if 語句控制流等等。
如果你不熟悉這些特性,可以在Dart 入門頁面找到學習 Dart 的資源。
下一頁:Widgets
#本頁是 Dart 的簡介,旨在幫助你熟悉閱讀 Flutter 和 Dart 程式碼。即使你對本頁中的所有程式碼並不完全清楚也沒關係,只要你對 Dart 語言的*語法*感到滿意即可。在下一節中,你將瞭解 Flutter 應用程式的構建塊:小部件。
反饋
#由於本網站的這一部分正在不斷發展,我們歡迎你的反饋!