跳到主要内容

第2章:Dart语言基础

简要说明

在学习Flutter之前,掌握Dart语言的基础知识是至关重要的。Dart是Flutter的官方编程语言,具有简洁的语法和强大的功能。本章将介绍Dart的基本语法、面向对象编程以及异步编程的核心概念,为后续的Flutter开发打下坚实的基础。

关键知识点

1. Dart的基本语法

1.1 变量与数据类型

Dart是一种强类型语言,但支持类型推断。你可以使用var关键字声明变量,Dart会自动推断变量的类型。

var name = 'Dart'; // 类型推断为String
int age = 25; // 显式声明为int类型
double height = 1.75; // 显式声明为double类型
bool isStudent = true; // 显式声明为bool类型

Dart支持以下基本数据类型:

  • int:整数类型
  • double:浮点数类型
  • String:字符串类型
  • bool:布尔类型
  • List:列表(数组)
  • Map:键值对集合

1.2 函数

Dart中的函数使用void表示无返回值,使用return返回值。

void printName(String name) {
print('Name: $name');
}

int add(int a, int b) {
return a + b;
}

Dart还支持箭头函数(单行函数):

int multiply(int a, int b) => a * b;

2. 面向对象编程

2.1 类与对象

Dart是一种面向对象的语言,支持类、继承、接口等特性。

class Person {
String name;
int age;

// 构造函数
Person(this.name, this.age);

// 方法
void introduce() {
print('My name is $name, and I am $age years old.');
}
}

void main() {
var person = Person('Alice', 30);
person.introduce();
}

2.2 继承

Dart支持单继承,使用extends关键字实现继承。

class Student extends Person {
String school;

Student(String name, int age, this.school) : super(name, age);

@override
void introduce() {
super.introduce();
print('I study at $school.');
}
}

2.3 接口

Dart没有专门的接口关键字,类可以通过实现其他类的方法来充当接口。

abstract class Animal {
void makeSound();
}

class Dog implements Animal {
@override
void makeSound() {
print('Woof!');
}
}

3. 异步编程

3.1 Future

Dart使用Future表示异步操作的结果。Future可以表示一个可能在未来完成的操作。

Future<String> fetchUserData() {
return Future.delayed(Duration(seconds: 2), () => 'User Data');
}

void main() {
fetchUserData().then((data) {
print(data);
});
}

3.2 async/await

asyncawait关键字使得异步代码的编写更加简洁和易读。

Future<void> printUserData() async {
var data = await fetchUserData();
print(data);
}

void main() {
printUserData();
}

总结

本章介绍了Dart语言的基本语法、面向对象编程以及异步编程的核心概念。掌握这些基础知识将为后续的Flutter开发提供坚实的基础。在下一章中,我们将深入探讨Flutter的核心组件和布局系统。


下一章预告:第3章:Flutter核心组件与布局系统