想要學習 Flutter App開發,第一步就是掌握它的核心語言——Dart。Dart 是 Google 推出的現代化程式語言,專為高效構建應用程式而設計。它不僅語法簡單、功能強大,還包含許多獨特的語言特性,讓開發者能夠快速開發高效且具有彈性的程式碼。
在本篇文章中,我們將深入介紹 Dart 的核心基礎,包括基本語法、物件導向概念及其特殊語言特性,幫助你快速上手並為學習 Flutter 打下堅實基礎!
Dart 是一種強型別語言,但它也支援類型推斷,讓你在需要時可以靈活選擇顯式或隱式定義型別。以下是 Dart 的基本語法和內建類型:
Dart 提供了以下幾個常見的資料型別:
void main() {
// 數字類型
int age = 25;
double height = 5.9;
// 字串
String name = 'Flutter';
// 布林值
bool isLearning = true;
// 列表
List<int> numbers = [1, 2, 3, 4, 5];
// 集合
Set<String> colors = {'red', 'green', 'blue'};
// 映射
Map<String, int> scores = {'Math': 90, 'English': 85};
print('Name: $name, Age: $age, Height: $height, Is Learning: $isLearning');
print('Numbers: $numbers');
print('Colors: $colors');
print('Scores: $scores');
}
Dart 是一種面向對象的程式語言,所有內容都是物件。從變數到函式,再到類與物件,我們來逐一介紹。
你可以使用 var、final 或 const 來定義變數:
Dart 語法範例
void main() {
var name = 'Flutter'; // 自動推斷為 String
final age = 25; // 不可變
const pi = 3.14159; // 編譯時常量
print('$name is $age years old. Value of pi is $pi.');
}
Dart 的函式支援具名參數和默認值,靈活度高。
Dart 語法範例
int add(int a, int b) {
return a + b;
}
void greet({String name = 'Guest'}) {
print('Hello, $name');
}
void main() {
print(add(3, 5)); // 8
greet(); // Hello, Guest
greet(name: 'Flutter'); // Hello, Flutter
}
Dart 支援類和物件的定義,讓你能夠使用封裝、繼承、多型等面向對象的特性。
Dart 語法範例
class Person {
String name;
int age;
Person(this.name, this.age);
void introduce() {
print('Hi, I am $name and I am $age years old.');
}
}
void main() {
var person = Person('Flutter', 3);
person.introduce(); // Hi, I am Flutter and I am 3 years old.
}
Dart 提供了一些獨特的語言特性,讓程式碼更加簡潔強大。
Dart 3 引入了 record,可以用來存放多個值而不需要定義類。
Dart 語法範例
void main() {
var record = ('Flutter', 3, true);
print(record.$1); // Flutter
print(record.$2); // 3
print(record.$3); // true
}
Dart 支援模式匹配,讓你能輕鬆解構資料結構。
Dart 語法範例
void main() {
var (name, age) = ('Flutter', 3); // 解構
print('Name: $name, Age: $age');
}
枚舉類型用於定義一組有意義的常量。
Dart 語法範例
enum Color { red, green, blue }
void main() {
var favoriteColor = Color.green;
switch (favoriteColor) {
case Color.red:
print('Red');
break;
case Color.green:
print('Green');
break;
case Color.blue:
print('Blue');
break;
}
}
Mixins 允許你在類中混入其他類的功能,避免多重繼承的問題。
Dart 語法範例
mixin Flyable {
void fly() => print('I can fly!');
}
class Bird with Flyable {}
void main() {
var bird = Bird();
bird.fly(); // I can fly!
}
Dart 支援擴充方法,讓你可以為現有類型添加新功能,而不需要修改原始代碼。
Dart 語法範例
extension StringExtension on String {
String greet() => 'Hello, $this!';
}
void main() {
print('Flutter'.greet()); // Hello, Flutter!
}
泛型讓你可以在類或函式中使用不特定的型別,提升程式碼的靈活性和類型檢查安全性。
Dart 語法範例
class Box<T> {
T content;
Box(this.content);
void show() {
print('Content: $content');
}
}
void main() {
var intBox = Box<int>(123);
var stringBox = Box<String>('Flutter');
intBox.show(); // Content: 123
stringBox.show(); // Content: Flutter
}
Dart 是學習 Flutter 的第一步,它不僅語法簡單,還具備許多現代化的語言特性,如 records、patterns、mixins 等,讓開發更加靈活。此外,泛型與擴充方法可以提升程式碼的重用性與可維護性。
學會 Dart,不僅能幫助你快速掌握 Flutter,也能讓你的程式開發能力更上一層樓!接下來,我們將深入探討 Flutter 的核心概念並實現第一個跨平台應用,敬請期待!
你準備好進入 Flutter 的世界了嗎?快來留言分享你的學習進度吧!