Learning Path
浏览 Dart 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
23
Dart 教程 Dart 是 Google 开发的一门现代化编程语言,主要用于构建高性能、跨平台的应用程序。 Dart 支持面向对象、函数式编程等多种编程范式,可以运行在浏览器、服务器、移动端以及桌面平台。 Dart 是 Flutter 框架的核心语言,通过 Dart 可以快速开发 Android、iOS、Web 和桌面应用。 本教程基于 Dart 3.x 版本测试,适合零基础开发者学习 Dart 编程。 学习 Dart 前,..
Dart 异步编程 异步编程是现代应用开发中最核心的能力之一。 无论是网络请求、文件读写还是数据库操作,都需要异步处理来避免阻塞主线程。 本章介绍 Future 的概念、async/await 语法以及如何处理异步错误。 为什么需要异步编程 先理解同步和异步的区别。 同步代码按顺序一行一行执行,上一行完成之前下一行不会开始。 如果某个操作需要等待(如网络请求),整个程序就会被卡住。 实例 对比同步和异步代码的执行效果: [my..
Dart 基础语法 每种编程语言都有自己的一套基本规则,Dart 也不例外。 本章介绍 Dart 程序的基本结构、注释写法、语句与表达式的区别,以及标识符的命名规范。 程序结构与 main() 函数 Dart 文件名后缀为 .dart,每个 Dart 程序都必须有一个入口点——main() 函数。 程序从 main() 函数的第一行开始执行,到最后一行的花括号结束。 实例 一个最简 Dart 程序的结构: [mycode4 ..
Dart 类与对象 类是面向对象编程的核心概念,它是对现实世界中事物的抽象描述。 对象是类的具体实例。本章介绍 Dart 中类的定义、构造函数、成员变量与方法、getter/setter 和静态成员。 类的定义与实例化 类是创建对象的模板,定义了对象有哪些属性(数据)和行为(方法)。 实例 [mycode4 type='dart'] // 定义一个 User 类 class User { // 成员变量..
Dart 集合类型 集合是用来存放多个数据的数据结构。 Dart 内置了三种核心集合类型:List(列表)、Set(集合)和 Map(映射),本章将逐一介绍它们的用法。 List:有序列表 List 是最常用的集合类型,用于存放一组有序的元素,允许重复。 你可以通过索引(从 0 开始)来访问 List 中的任意元素。 创建 List 实例 [mycode4 type='dart'] void main()..
Dart 控制流 控制流决定了程序中的代码按照什么顺序执行。 本章介绍 Dart 中的条件判断(if/else、switch)和循环语句(for、while),以及 break 与 continue 的使用。 if / else / else if 条件判断 if 语句是最基本的控制流结构,它根据条件决定是否执行某段代码。 实例 基本的 if 判断: [mycode4 type='dart'] void m..
Dart 枚举与符号 枚举(enum)用于定义一组有名字的常量值,让代码更具可读性。 本章介绍 Dart 枚举的定义方式、增强枚举(带方法和属性)以及 Symbol 和 Rune 类型。 enum 枚举定义 枚举是一种特殊的类,用于表示固定数量的常量值。 最典型的场景是表示状态、方向、颜色等有限选项。 实例 [mycode4 type='dart'] // 定义枚举 enum Status { pend..
Dart 异常处理 异常是程序运行时发生的错误事件。 良好的异常处理能让程序在遇到错误时优雅地降级,而不是直接崩溃。 本章介绍 Dart 中的 try/catch/finally、throw 抛出异常、on 捕获指定类型以及 rethrow 重新抛出。 try / catch / finally 基础 try 块中放置可能抛出异常的代码,catch 块捕获并处理异常,finally 块无论是否异常都会执行。 实例 [mycod..
第一个 Dart 程序 学习一门编程语言,最好的方式不是先背语法规则,而是先跑起来一个程序,再一行一行地问这是什么意思。 本章我们将从一个最简单的程序出发,逐步扩展到一个稍微完整的小程序,在这个过程中把 Dart 最基础的概念都过一遍。 Dart 语言标准文件后缀 .dart,比如 hello.dart。 最简单的程序:Hello, Dart! 打开 DartPad https://dartpad.dev(或本地编辑器创建 hel..
Dart 函数 函数是组织代码的基本单元,它将一段可复用的逻辑封装起来,需要时调用即可。 Dart 的函数系统非常灵活,支持命名参数、可选参数、箭头函数和高阶函数等特性。 函数定义与返回值 函数由返回类型、函数名、参数列表和函数体组成。 实例 [mycode4 type='dart'] // 定义一个简单的函数 // String 是返回类型,greet 是函数名,(String name) 是参数列表 S..
Dart 泛型 泛型(Generics)让你在编写代码时不指定具体类型,而是用类型参数占位,在使用时再确定类型。 泛型的核心价值是类型安全和代码复用——一份代码适配多种类型,同时编译器帮你检查类型错误。 为什么需要泛型 先看一个没有泛型时的痛点。 实例 没有泛型的写法: [mycode4 type='dart'] // 没有泛型:只能存放 Object,取出时需要手动转型 class IntBox { ..
Dart 继承与多态 继承是面向对象编程的三大特性之一,它允许一个类基于另一个类进行扩展。 本章介绍 Dart 中的 extends 单继承、方法重写、super 关键字和抽象类。 extends 单继承 Dart 只支持单继承——每个类只能有一个直接父类。 但继承链可以很长:子类继承父类,父类再继承祖父类,层层传递。 实例 [mycode4 type='dart'] // 父类(基类、超类) class ..
Dart 开发环境搭建 学习任何编程语言的第一步,都是在本地搭建一个可用的开发环境。 本章将带你安装 Dart SDK、配置编辑器,并运行你的第一个 Dart 程序。 在线体验 如果你只是想快速体验 Dart,不想在本地安装任何东西,DartPad 是最省事的选择。 DartPad 是 Dart 官方提供的在线编辑器,无需注册,打开浏览器即可编写和运行代码。 访问地址:https://dartpad.dev DartPad 的主要功..
Dart 接口与 Mixin 虽然 Dart 只支持单继承,但通过接口和 Mixin 可以灵活地实现多重代码复用。 本章介绍如何使用 implements 实现接口、mixin 的代码复用以及 with 关键字。 implements 实现接口 在 Dart 中,每个类都隐式定义了一个接口。 使用 implements 关键字可以让一个类实现另一个类的接口,且可以实现多个。 实例 [mycode4 type='dar..
Dart 简介 Dart 是由 Google 开发的一种现代化编程语言,专为构建高性能、跨平台应用而设计。 本章带你了解 Dart 的起源、设计理念以及它在前端、移动端和服务端的广泛应用场景。 Dart 的历史与设计目标 Dart 诞生于 2011 年,最初的目标是替代 JavaScript 成为浏览器的原生脚本语言。 虽然这个目标未能实现,但 Dart 在 2017 年迎来了关键转折点——Flutter 框架的发布让 Dart ..
Dart 并发与 Isolate 并发是指同时处理多个任务的能力。 Dart 的并发模型不同于传统的多线程,它使用 Isolate(隔离区)来实现并行计算。 本章介绍 Dart 的并发模型、Isolate 的概念与使用以及消息传递机制。 Dart 并发模型 大多数编程语言使用共享内存的多线程模型,多个线程共享同一个内存空间。 这种模型的缺点是容易产生竞态条件(race condition)和死锁(deadlock)。 Dart 采..
Dart 运算符 运算符是程序中执行计算、比较和逻辑判断的符号。 本章系统介绍 Dart 中的各类运算符,包括算术、关系、逻辑、赋值、条件运算符以及类型检测。 算术运算符 算术运算符用于执行基本的数学运算。 实例 [mycode4 type='dart'] void main() { int a = 10; int b = 3; print('a = $a, b = $b'..
Dart 包与库管理 当项目规模增长时,将代码拆分为多个文件和模块是必不可少的。 本章介绍 Dart 的包管理系统 pub、依赖配置文件 pubspec.yaml、import/export 语法以及如何创建自定义库。 pubspec.yaml 配置 pubspec.yaml 是每个 Dart 项目的核心配置文件,声明了项目的元数据和依赖。 一个典型的 pubspec.yaml 文件结构如下: 实例 [mycode4 typ..
Dart Stream 流 Stream(流)是 Dart 中处理连续异步事件序列的机制。 如果说 Future 是一次性的异步结果,那么 Stream 就是多次的、持续不断的异步数据流。 本章介绍 Stream 的概念、await for 监听、StreamController 创建以及单订阅与广播流的区别。 Stream 与事件序列 Stream 就像一条传送带,数据会随着时间推移一个个到来。 你不需要一次性等待所有数据,而是来..
Dart typedef 与函数类型 typedef 是 Dart 中的类型别名机制,它让你为复杂的类型定义简短易读的名称。 本章介绍 typedef 的两种用法:传统的函数类型别名,以及 Dart 3.0 引入的通用类型别名。 typedef 函数类型别名 当一个函数类型被频繁使用时,typedef 可以给它一个清晰的名字。 这对于回调函数、事件处理器等场景特别有用。 实例 [mycode4 type='dart&..
Dart 单元测试 单元测试是保证代码质量的基础手段。 它验证每个最小功能单元(通常是函数或方法)的行为是否符合预期。 本章介绍 Dart 的 test 包使用、test() 测试用例编写、expect 断言以及 group() 分组测试。 test 包的安装与配置 Dart 官方提供了 test 包来编写和运行测试。 首先在 pubspec.yaml 中添加依赖: # 文件路径:pubspec.yaml dev_dependen..
Dart 变量与数据类型 变量是程序中存储数据的基本单元,数据类型决定了变量能存储什么值。 本章介绍 Dart 中的变量声明方式、基本数据类型以及重要的空安全机制。 变量的声明方式:var、final、const Dart 提供了三种声明变量的关键字,分别适用于不同的场景。 理解它们的区别是学好 Dart 的第一步。 var——类型推断变量 使用 var 声明的变量,类型由初始值自动推断,且类型一旦确定就不能更改。 实例 [..