Flutter 的循环遍历

31 min read
void main(){
 
  List list = ['香蕉','苹果','梨'];
 
  /**
   * 遍历list的三种方法
   */
  //第一种 for循环
  for(int i=0;i<list.length;i++){
    print(list[i]);
  }
  print("----分割线----");
 
  //第二种 foreach
  for (var value in list) {
    print(value);
  }
  print("----分割线----");
 
  //第三种 函数foreach
  list.forEach((value){
    print(value);
  });
  print("----分割线----");
 
  list = new List();
  list.add(1);
  list.add(2);
  list.add(3);
  list.add(4);
  list.add(5);
 
  /**
   * 处理list中的每个元素
   */
  List list2 = new List();
  for(int i=0;i<list.length;i++){
    list2.add(list[i]*2);
  }
  print(list2);
 
  print("----分割线----");
 
  //更简单的方法
  var newList = list.map((value){
    return value*2;
  });
  print(newList.toList());
 
  print("----分割线----");
 
  /**
   * 只要list中大于2的数据 可以用where
   */
  var newList2 = list.where((value){
    return value>2;
  });
  print(newList2.toList());
 
  print("----分割线----");
 
  /**
   * 判断只要集合中有满足条件的 返回true
   */
  var newList3 = list.any((value){
    return value<4;
  });
  print(newList3);
  print("----分割线----");
 
  /**
   * every判断集合中所有的值都要满足条件 返回true 否则返回false
   */
  var newList4 = list.every((value){
    return value<3;
  });
  print(newList4);
 
  print("----分割线----");
 
  /**
   * 循环set的方法
   */
 
  var set = new Set();
  set.addAll(list);
  /**
   * dark是支持箭头函数的 这句代码
   * set.forEach((value){
   *   print(value);
   *  });
   */
  set.forEach((value)=>print(value));
  
 
  print("----分割线----");
 
  /**
   * 循环Map
   */
  Map map = {
    'name':'mrwang',
    'sex':'男'
  };
  map.addAll({
    'like':'⛹',
    'money':'null'
  });
  map.forEach((key,value)=>print("$key $value"));
 
}

flutter 的函数式不会修改原对象