Dart知识总结与技巧

第一章 List

第一节 List常用方法

增加:4个方法 add(), addAll(),insert(), insertAll()
删除:6个方法 remove(), removeAt(), removeLast(), clear(), removeWhere(),removeRange(start,end)含头不含尾
修改:5个方法
list[index],其他四个很少用,这里不介绍
查询:20个方法
elementAt(), contains(),
indexOf(), lastIndexOf(), where(), indexWhere(), lastIndexWhere(),
where():根据指定条件,函数筛选每个元素,符合条件的元素组成一个新的 Iterable
join():用指定字符连接数组中每个元素,返回 String
generate,shuffle

1.1 forEach

1
2
3
4
5
///forEach 作用: 遍历数组
void forEach() {
var list = [1, 3, 5];
list.forEach((item) => print(item));
}

1.2 map

1
2
3
4
5
6
///map 作用:遍历数组,和forEach不同的是,map会返回一个新的List对象
void map() {
var list = ["大渡口", "九龙坡", "渝中区"];
var newList = list.map((e) => "区域:$e").toList();
print(newList); // [区域:大渡口, 区域:九龙坡, 区域:渝中区]
}

1.3 sort

1
2
3
4
5
6
7
8
///sort 作用:排序
void sort() {
var list = [-100, 9, 3, 22, 7];
list.sort();
print('排序:$list'); //排序:[-100, 3, 7, 9, 22]
list.sort((a, b) => b - a); //从大到小
print('从大到小排序:$list'); // [22, 9, 7, 3, -100]
}

1.4 reduce

1
2
3
4
5
6
7
///reduce和fold  作用:根据传入的函数操作,将集合减少为一个值
void reduce() {
List list = [1, 2, 3, 4, 5];
var sum = list.reduce((a, b) => a + b);
var fold = list.fold(100, (a, b) => a+b); //先给定一个初始值100
print('求和:$sum ,$fold');// 求和:15 ,115
}

1.5 every

1
2
3
4
5
6
///every 作用:判断集合中的元素是否满足某个条件,当有一个不满足的时候,返回false
void every(){
List<String> students = ['danny', 'david', 'erik'];
bool startWithD = students.every((element) => element.startsWith('d'));
print('startWithD:$startWithD');
}

1.6 takeSkip

1
2
3
4
5
6
7
///take skip 作用: take 表示从索引0到传入索引裁剪  skip则是从索引位置到末尾
void takeSkip(){
var list = [1,3,5,7,9];
var firstList = list.take(3); // [0-3) -> 1, 3, 5
var lastList = list.skip(3);
print('firstList:$firstList lastList:$lastList');
}

1.7 where

1
2
3
4
5
6
///where 作用:返回满足条件的子集合
void where(){
var list = [50,-100, 9, 3, 22, 7];
var newList = list.where((element) => element < 20);
print('newList:$newList'); //(-100, 9, 3, 7)
}

1.8 generate

1
2
3
4
5
///generate 快速生成  flutter中常用于快速生成widget集合
void generate(){
var result = List.generate(15, (index) => "值$index");
print('result:$result');
}

1.9 shuffle

1
2
3
4
5
void shuffle(){
var list = [50,-100, 9, 3, 22, 7];
list.shuffle();
print('打乱后:$list');//[3, 7, 22, 9, -100, 50]
}