Dart 简介

www365bet娱乐场 📅 2026-07-30 00:08:47 👤 admin 👁️ 6409 ❤️ 768
Dart 简介

Dart 简介 开始使用 chevron_right 基础 chevron_right Dart 简介 要开始使用 Flutter,你需要对 Dart 编程语言有一些了解,因为 Flutter 应用就是用它编写的。本页是 Dart 的一个简单介绍,如果你能轻松阅读代码示例,请随意跳过本页。你不需要成为 Dart 专家即可继续本系列。

Dart#Flutter 应用程序使用 Dart 构建,这种语言对于编写过 Java、Javascript 或任何其他类 C 语言的人来说都会很熟悉。

info 注意安装 Flutter 也会安装 Dart,所以你不需要单独安装 Dart。

以下示例是一个小程序,它从 dart.dev 获取数据,解码返回的 json,并将其打印到控制台。如果你对理解此程序有信心,请随意跳到下一页。

dartimport '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 语句控制流等等。

info 初始化代码放在哪里?Flutter 入门应用程序中的主入口点在 lib/main.dart 中。默认的 main 方法如下所示:

lib/main.dartdartvoid main() {

runApp(const MyApp());

}在调用 runApp() 之前执行任何*快速*初始化(少于一到两帧),但请注意,此时小部件树尚未创建。如果你想执行需要一段时间的初始化,例如从磁盘或网络加载数据,请以不会阻塞主 UI 线程的方式进行。有关更多信息,请查看异步编程、FutureBuilder API、延迟组件或处理长列表烹饪指南,视情况而定。

每个有状态的小部件都有一个 initState() 方法,该方法在小部件创建并添加到小部件树时调用。你可以覆盖此方法并在其中执行初始化,尽管此方法的第一行*必须*是 super.initState()。

最后,热重载你的应用程序*不会*再次调用 initState 或 main。热重启会同时调用两者。

如果你不熟悉这些特性,可以在Dart 入门页面找到学习 Dart 的资源。

下一页:Widgets#本页是 Dart 的简介,旨在帮助你熟悉阅读 Flutter 和 Dart 代码。即使你对本页中的所有代码并不完全清楚也没关系,只要你对 Dart 语言的*语法*感到满意即可。在下一节中,你将了解 Flutter 应用程序的构建块:小部件。

反馈#由于本网站的这一部分正在不断发展,我们欢迎你的反馈!

chevron_left上一页 基础知识下一页 Widgetschevron_right 此页面内容有帮助吗?有用 没用感谢你的反馈! feedback 提供详情感谢你的反馈!请告诉我们如何改进。 bug_report 提供详情除非另有说明,本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2025-01-10。 查看源代码 或 报告问题。

相关推荐

《仙剑奇侠传》里,为什么李逍遥喜欢上林月如才是必然?
名门嫡姝结局什么意思
www365bet娱乐场

名门嫡姝结局什么意思

📅 07-12 👁️ 1932
lol半价皮肤多久一次 lol五折英雄皮肤最新
中国的365体育投注

lol半价皮肤多久一次 lol五折英雄皮肤最新

📅 08-28 👁️ 691