【Flutter】Dart的数据类型list&Map(数组和字典)

本文介绍了Dart语言中的基础语法,包括可变与不可变数组(List)的创建、操作方法,以及字典(Map)的使用,如键值对的存取、修改和遍历。通过实例代码展示了Dart中列表和字典的基本功能,并提供了相关操作的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 写在前面

上篇文章中介绍了Dart的基本数据类型中的字符串 string,那么现在就继续来学习 Dart的基础语法中的数组(list)和字典(Map)。
Flutter

【Flutter】苹果Mac电脑配置flutter开发环境

【Flutter】 Android Studio 安装第三方模拟器—网易MuMu

【Flutter】项目运行报错Failed to find Build Tools revision 29.0.2

【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘

【Flutter】如何新建项目,运行你的第一个 flutter 工程项目

【Flutter】Dart中的var、final 和 const基本使用

【Flutter】Dart数据类型之num

【Flutter】Dart数据类型之String

2. list 列表(数组)

dartlist列表,就相当于 OC 中的 Array数组,也分为可变不可变两种。

2.1 可变 list

话不多说,直接上代码,如下:

void main(){

  listTest();

}
void listTest(){
  // 直接 list创建
  List a = ["1",2,"3.0",4.0];
  print(a);
// var 创建
  var list = [1,2,"zjp",3.0];
  print(list);

}

默认都是可变的,列表中可以添加不同数据类型的数据,非常方便,运行结果如下:
运行结果

2.1.1 获取指定下标数据
//直接获取指定下标数据
  print(list[3]);
  //直接修改指定下标数据
  list[3] = "reno";
2.1.2 插入数据方法
 //插入
  list.insert(1, "hellow");//list.insert(index, element)
2.1.3 删除数据方法
 //删除
  list.remove(1);
  print(list);
2.1.4 清空数据方法
list.clear();

测试结果如下:
代码测试结果

2.1.5 排序方法

运行结果

更多的方法可以去查看list.dart,里面都有注释和说明的,和 iOS里面查看某个类的方法是一样,command+鼠标点击就去就可以。

2.2 不可变 list

不可变的 list就是在前面加上 const就可以了,如下:
测试结果
list前面加上 const就是不可变的了,不可以修改里面的数据了,否则会报错。

3. Map(字典)

3.1 可变 Map

dartmap是键值对,也就是 OC 中的字典 dictionary 一样的意思。

  • 创建一个map
void mapTest(){
  Map a = {"a":1,"b":2};
  print(a);

  var a1 = {"a1":1,"a2":2};
  print(a1);
}
  • 运行结果如下:

运行结果

3.1.1 map取值、改值
 print(a["a"]);//取值
  a["a"] = "aa";//改值
  print(a["a"]);
3.1.2 map长度
 //map长度
  print(a.length);
3.1.3 map所有的 key
 //获取所有的 key
  print(a.keys);
3.1.4 map所有的 value
  //获取所有的 values
  print(a.values);
  • 测试结果如下:

测试结果

3.2 不可以变 map

不可变就是前面加上 const,不可变的map不可以修改键值对,和 list一样修改就报错。

报错信息

  • list 可以转为 map
print(b.asMap());//list转为 map
  • 结果如下:

运行结果
更多方法可以去具体的类里面查看。

4. 写在后面

关注我,更多内容持续输出

🌹 喜欢就点个赞吧👍🌹

🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹

🌹欢迎大家留言交流,批评指正,转发请注明出处,谢谢支持!🌹

### Flutter 中的基本数据类型 Flutter 使用 Dart 语言作为其开发语言,因此了解 Dart 的基本数据类型是掌握 Flutter 开发的基础。以下是 Dart 中常见的基本数据类型及其官方文档中的示例说明: #### 1. 数字类型 (num) Dart 中的数字类型分为 `int` `double` 两种子类型,它们都继承自 `num` 类型[^3]。`int` 表示整数,而 `double` 表示浮点数。 ```dart void main() { int a = 42; // 整数 double b = 3.14; // 浮点数 print(a is int); // true print(b is double); // true num c = 42; // 可以表示为 int 或 double c = 3.14; // 仍然合法 } ``` #### 2. 字符串类型 (String) 字符串在 Dart 中使用双引号或单引号定义。支持字符串插值多行字符串[^2]。 ```dart void main() { String greeting = "Hello, world!"; String name = 'Flutter'; // 字符串插值 String message = 'Welcome to $name'; print(message); // Welcome to Flutter // 多行字符串 String multiLine = ''' This is a multi-line string. '''; print(multiLine); } ``` #### 3. 布尔类型 (bool) 布尔类型只有两个值:`true` `false`。用于条件判断[^2]。 ```dart void main() { bool isTrue = true; bool isFalse = false; if (isTrue) { print('This is true'); } else if (isFalse) { print('This is false'); } } ``` #### 4. 列表类型 (List) 列表是一种有序集合,类似于数组。可以存储任意类型的对象[^2]。 ```dart void main() { List<int> numbers = [1, 2, 3, 4]; print(numbers[0]); // 输出 1 numbers.add(5); // 添加元素 print(numbers); // [1, 2, 3, 4, 5] } ``` #### 5. 映射类型 (Map) 映射是一种键值对集合,类似于字典[^2]。 ```dart void main() { Map<String, int> scores = {'Alice': 10, 'Bob': 20}; print(scores['Alice']); // 输出 10 scores['Charlie'] = 30; // 添加新键值对 print(scores); // {Alice: 10, Bob: 20, Charlie: 30} } ``` #### 6. 符号类型 (Symbol) 符号类型用于表示 Dart 中的标识符,通常在反射场景中使用[^2]。 ```dart void main() { Symbol symbol = #hello; print(symbol); // Symbol("hello") } ``` #### 官方文档示例 上述数据类型均可以在 Dart 官方文档中找到详细描述更多示例[^2]。例如,在 Flutter 开发中,这些数据类型常用于 Widget 构建、状态管理以及业务逻辑处理。 ```dart class ExampleWidget extends StatelessWidget { final String title; final int count; ExampleWidget({required this.title, required this.count}); @override Widget build(BuildContext context) { return Text('$title: $count'); // 使用字符串插值 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西Sensei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值