Dart 学习路线 · 零基础友好

轻松学 Dart

不要试图一次“学完 Dart”。最轻松的方式是:学一个概念,立刻写 10 行代码,再通过小项目把知识串起来。

20% 语法60% 小项目20% 查漏补缺

第一步:只掌握最核心的 20%

一开始先忽略高级特性,先让自己能读懂和写出普通 Dart 代码。

1

变量和类型

String name = 'Tom';
int age = 20;
double score = 95.5;
bool isStudent = true;
2

var / final / const

var name = 'Tom';
final now = DateTime.now();
const pi = 3.14159;
3

函数

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

int add2(int a, int b) => a + b;
4

类和对象

class User {
  final String name;
  int age;

  User(this.name, this.age);
}
学习原则:每天必须让代码真正运行并产生结果。只看教程、不写代码,进步会非常慢。

第二步:练熟 List / Map / map / where

如果未来写 Flutter,这部分的收益非常高。

final numbers = [1, 2, 3, 4, 5];

final result = numbers
    .where((n) => n % 2 == 0)
    .map((n) => n * 10)
    .toList();

print(result); // [20, 40]

把它读成人话:

numbers → 找出偶数 → 每个乘 10 → 转成 List。

逐渐熟悉这些方法:mapwherefirstWhereanyeveryfold

第三步:集中攻克 5 个关键点

1. Null Safety

String? username;
final name = username ?? '游客';

重点理解:??.??!

2. 命名参数

void createUser({
  required String name,
  int age = 18,
}) {}

3. 构造函数

class User {
  final String name;
  final int age;

  User({
    required this.name,
    required this.age,
  });
}

4. async / await

Future<String> loadUser() async {
  await Future.delayed(
    const Duration(seconds: 1),
  );
  return 'Tom';
}

5. 泛型

List<String>
Map<String, dynamic>
Future<User>

先把它理解成“里面装什么类型”,等实际代码见多了,再学复杂泛型。

7 天入门计划

每天 30~60 分钟即可。

Day 1变量、类型、if练习:猜数字
Day 2List、Map、循环练习:成绩统计
Day 3函数练习:小计算器
Day 4class练习:User / Product
Day 5Null Safety练习:用户资料处理
Day 6map / where练习:商品筛选
Day 7Future / async练习:模拟网络请求

第一个小项目:商品系统

class Product {
  final String name;
  final double price;

  Product({
    required this.name,
    required this.price,
  });
}

void main() {
  final products = [
    Product(name: 'iPhone', price: 5999),
    Product(name: 'Keyboard', price: 399),
    Product(name: 'Mouse', price: 199),
  ];

  final expensiveProducts = products
      .where((product) => product.price > 300)
      .toList();

  for (final product in expensiveProducts) {
    print('${product.name}: ¥${product.price}');
  }
}

逐步升级

显示全部商品
筛选价格大于 300 元的商品
按价格排序
计算总价
加入购物车
增加折扣
转换成 JSON

如果目标是 Flutter

不需要等到“完全掌握 Dart”才开始 Flutter。达到大约 30%~40% 的基础熟练度就可以进入 Flutter。

Dart 基础 → 变量 / 函数 / List / Map → class → Null Safety → Future / async / await → 开始 Flutter → 遇到问题再回头补 Dart。

暂时可以跳过

mixin、复杂泛型、operator overload、isolate、metadata、复杂 Stream、reflection、复杂 extension、底层 event loop 原理。