dart第一篇:dart基础
dart可以通过三对单引号或者双引号来定义多行字符串,就好像Java17中的多行字符串一样,如String str = """a
b
c""";
dart中用int表示正数,double代表小数,num是这两个类的父类。没有其他的数字类。int与double计算,得到double。取余用%表示,整除用~/表示。
List的静态方法:
filled()用于生成一个指定长度和元素的数组,通过第三个参数决定生成的数组是定长还是不定长的,默认是定长的。
genetate()方法用于生成一个指定初始长度的数组,并且可以指定元素生成器以及数组是否定长。默认是不定长的。
List的实例方法:
void fillRange()方法用于把数组指定区间的元素都替换成一个其他元素,会修改原数组。如一个数组是[1, 2, 3, 4],其调用fillRange(0, 2)后会变为[5, 5, 3, 4]。
void replaceRange方法用于把数组指定区间的元素替换成一个新数组,会修改原数组,原数组长度可能会变。如一个数组是[1, 2, 3, 4],其调用replaceRange(0, 2, [5, 6, 7])后会变为[5, 6, 7, 3, 4]。
T fold()、T reduce()方法用于聚合,返回一个值,可用于求和、求乘积等聚合操作。
Iterable followedBy()方法可用于和另一个List实例拼接,如[1, 2].followedBy([3, 4])返回[1, 2, 3, 4]。
Iterable getRange()方法返回一个子数组。
void insert()方法用于往数组中指定位置处插入一个元素,会修改原数组,数组中指定位置处的元素及之后的元素的索引都会加1。
void insertAll()方法用于往数组中指定位置处插入一个数组,会修改原数组,数组中指定位置处的元素及之后的元素的索引都会增加。
String join()方法用于数组拼接,返回一个字符串。
Iterable where()方法用于从一个数组中把满足条件的元素都找出来。
Iterable<T> whereType<T>()方法用于从一个混编的数组中把指定类型的元素都找出来。
Map<int, E> asMap()把list转为一个map,key是索引,value是对应元素。在list.map().toList()的场景中,如果想对某个索引的元素做一些特殊处理,就可以先把list转map,然后获取此map的entries属性,再调用entries的map().toList(),即
var list2 = list.asMap().entries.map((entry) { if (entry.key == 0) { // 特殊逻辑 return entry.value; } else { return entry.value; } }).toList();
如果要把两个list拼合,那么可以用...。如a、b都是一个数组,想定义c等于a+b,则可以var c = [...a, ...b]。
可以通过is关键字来判断变量是否是某种类型,如bool flag = a is String,判断变量a是否是String类型。
可以通过identical()方法查看两个引用是否指向同一个对象。如
String a = '1'; String b = '1'; bool c = identical(a, b);
实体类对象、Map、String之间相互转化
import 'dart:convert';
User user = User();
String str = jsonEncode(user); // 实体类对象转字符串
Map<String, dynamic> map = jsonDecode(str);// 字符串转Map
User user = User.fromJson(map);// Map转实体类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!