在前面的学习中,我们已经掌握了:
·变量与基本数据类型
·条件判断(if / switch)
·循环(for / while)
但到目前为止,我们处理的都是 单个数据。
在真实开发中,你会经常遇到这样的场景:
·一个商品列表
·多个用户信息
·一组数字或字符串
这时,一个变量已经远远不够, 我们需要一种可以 存储一组数据 的结构 —— List。
一、什么是 List?
List 可以理解为:
一个有顺序的“容器”,用来存放多个值
例如:
·多个姓名
·多个数字
·多条数据记录
二、List 的基本定义方式
List numbers = [1, 2, 3, 4, 5];这表示:
·numbers 是一个列表
·里面存放了 5 个数字
2️⃣ 指定 List 中的数据类型(推荐)
List<int> numbers = [1, 2, 3];
List<String> names = ['Tom', 'Jack', 'Lucy'];📌 好处:
·更安全
·更清晰
·编译器能帮你检查错误
三、访问 List 中的元素(索引)
List 中的每一个元素都有一个 索引(index):
·索引从 0 开始
·第一个元素索引是 0
List<String> names = ['Tom', 'Jack', 'Lucy'];
print(names[0]); // Tom
print(names[1]); // Jack⚠️ 注意:
·最大索引是 长度 - 1
·越界会报错
四、List 的常用属性和方法
print(names.length);2️⃣ 添加元素
names.add('Lily');3️⃣ 修改元素
names[0] = 'Tommy';4️⃣ 删除元素
names.remove('Jack');五、为什么 List 常与循环一起使用?
因为 List 通常是:
一组数据,需要逐个处理
如果你这样写:
print(names[0]);
print(names[1]);
print(names[2]);问题是:
·写死
·不灵活
·无法应对数据变化
这时候,就需要 遍历(循环访问)List。
六、使用 for 循环遍历 List
for (int i = 0; i < names.length; i++) {
print(names[i]);
}执行逻辑:
·i 从 0 开始
·每次取 names[i]
·直到遍历完整个 List
2️⃣ 遍历并结合字符串插值
for (int i = 0; i < names.length; i++) {
print('第 ${i + 1} 个名字是:${names[i]}');
}七、for-in 循环(更简洁的遍历方式)
Dart 提供了一种更简单的写法:
for (var name in names) {
print(name);
}特点:
·不关心索引
·语法更简洁
·非常适合只读取数据的场景
📌 初学建议:
先掌握普通 for,再使用 for-in
八、一个综合示例
List<int> scores = [80, 95, 60, 70];
for (int score in scores) {
if (score >= 90) {
print('$score:优秀');
} else if (score >= 60) {
print('$score:及格');
} else {
print('$score:不及格');
}
}这个例子同时使用了:
·List
·循环
·条件判断
·字符串插值
九、List 在 Flutter 中的实际意义
在 Flutter 中:
·List 常用于数据源
·ListView / GridView 都依赖 List
·页面上的“重复 UI”几乎都来自 List
例如(概念层面):
List<String> titles = ['首页', '消息', '我的'];后续你会学到如何:
用一个 List,生成多个 Widget
十、总结
本篇你已经学会了:
·什么是 List
·如何定义和操作 List
·如何使用循环遍历 List
·List 在 Flutter 中的重要性
你已经迈出了:
从“单个数据” → “一组数据”的关键一步
🔜 下一篇预告
《📘Flutter 零基础入门(六):Map 键值对与简单数据模型》
下一篇我们将学习:
·什么是 Map
·如何用 key-value 描述一条数据
·List + Map 的组合使用
·为真实业务数据建模打基础
从下一篇开始,你写的代码将越来越接近:
真实 Flutter 项目中的数据结构