Dart 入门
要开始使用 Flutter,你需要对 Dart 编程语言有所了解,因为 Flutter 应用程序就是用 Dart 编写的。本页面是对 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'], json['description']);
print(package);
}
这个程序分为两部分:
Package
类的声明,以及包含业务逻辑的 main
函数。
Package
类包含了你在 Dart 中使用类 时最常用的一些特性。这个类有三个成员,并定义了一个构造函数和一个方法。
Dart 是 类型安全 的编程语言;它使用静态类型检查来确保变量的值始终与变量的静态类型相匹配。在定义类时,通常是必须给成员加上 String
类型标注,但由于类型推断的存在,这一步变得可选了。在这个例子的 main
函数里,许多行以 final variableName =
开头。尽管这些行没有显式指定类型,但它们依然是类型安全的。
Dart 内置了 健全的空安全。在这个例子中,description
成员的类型被声明为 String?
,
?
表示该属性可以为 null。而其它两个成员则不能为 null,如果你尝试将它们设置为 null,程序将无法编译。你可以在 Package
类的构造函数中看到这一点。该构造函数接受两个必需的位置参数和一个可选的命名参数。
接下来是 main
函数。所有 Dart 程序,包括 Flutter 应用程序,都是从 main
函数开始的。该函数展示了 Dart 语言的一些基本特性,包括使用库、标记函数为异步、调用函数、使用 if
语句控制流等等。
如果这些特性对你来说不太熟悉,你可以在 Dart 语言指引 页面上找到相关资源。
下一步:Widget
#本页面介绍了 Dart,并帮助你熟悉阅读 Flutter 和 Dart 代码。如果你对本页的所有代码不太清楚也没关系,重要的是你能对 Dart 语言的 语法 感到熟悉。在下一部分,你将学习 Flutter 应用程序的构建模块:widget。
反馈
#由于本网站的此部分正在不断发展,我们 欢迎你的反馈!
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-11-23。 查看文档源码 或者 为本页面内容提出建议。