第一步:只掌握最核心的 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。
逐渐熟悉这些方法:map、where、firstWhere、any、every、fold。
第三步:集中攻克 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 原理。