dart常用语法

三个单引号或双引号可以写多行字符串
main(){

  var str1 = "str1";
  var str2 = "str2";

  print(str1 + " " + str2);
  print("$str1 $str2");

  bool flag1 = true;
  bool flag2 = false;

  var list1 = ["张三", "李四", "王五"];

  var list2 = new List();
  list2.add("kobe");
  list2.add("James");
  list2.add("Jordan");

  print(list2[0] + list2[1]);


  

  var person1 = new Map();
  person1["james"] = 40;
  print(person1);

  var person2 = {"name" : "张三", "age" : 20};

  var person3 = new Map<String, int>();

  //判断类型使用 is 关键字

  var name = "aaa";

  if (name is String) {

    print("string类型");
  }else if (name is int) {
    print("int类型");

  }else{
    print("其他类型");
  }


}

 字符串操作

数组List常用的属性和方法:

/*
List里面常用的属性和方法:

    常用属性:
        length          长度
        reversed        翻转
        isEmpty         是否为空
        isNotEmpty      是否不为空
    常用方法:  
        add         增加
        addAll      拼接数组
        indexOf     查找  传入具体值
        remove      删除  传入具体值
        removeAt    删除  传入索引值
        fillRange   修改   
        insert(index,value);            指定位置插入    
        insertAll(index,list)           指定位置插入List
        toList()    其他类型转换成List  
        join()      List转换成字符串
        split()     字符串转化成List
        forEach     遍历
        map         元素处理
        where       条件筛选
        any         任何一个满足条件返回true
        every       每一个都要满足条件返回true

*/


void main(){

  List myList=['香蕉','苹果','西瓜'];
  print(myList[1]);


  var list=new List();
  list.add('111');
  list.add('222');
  print(list);


List里面的属性:
    List myList=['香蕉','苹果','西瓜'];
    print(myList.length);
    print(myList.isEmpty);
    print(myList.isNotEmpty);
    print(myList.reversed);  //对列表倒序排序
    var newMyList=myList.reversed.toList();
    print(newMyList);

List里面的方法:


    List myList=['香蕉','苹果','西瓜'];
    myList.add('桃子');   //增加数据  增加一个

    myList.addAll(['桃子','葡萄']);  //拼接数组

    print(myList);

    print(myList.indexOf('苹x果'));    //indexOf查找数据 查找不到返回-1  查找到返回索引值


    myList.remove('西瓜');

    myList.removeAt(1);

    print(myList);
  



    List myList=['香蕉','苹果','西瓜'];

    myList.fillRange(1, 2,'aaa');  //修改

     myList.fillRange(1, 3,'aaa');  


    myList.insert(1,'aaa');      //插入  一个

    myList.insertAll(1, ['aaa','bbb']);  //插入 多个

    print(myList);






    List myList=['香蕉','苹果','西瓜'];

    var str=myList.join('-');   //list转换成字符串

    print(str);

    print(str is String);  //true


    var str='香蕉-苹果-西瓜';

    var list=str.split('-');

    print(list);

    print(list is List);

  


  


}
View Code

集合Set

//Set 

//用它最主要的功能就是去除数组重复内容

//Set是没有顺序且不能重复的集合,所以不能通过索引去获取值

void main(){

  
  var s=new Set();
  s.add('香蕉');
  s.add('苹果');
  s.add('苹果');

  print(s);   //{香蕉, 苹果}

  print(s.toList()); 


  List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];

  var s=new Set();

  s.addAll(myList);

  print(s);

  print(s.toList());


  
}
View Code

字典map

/*
  映射(Maps)是无序的键值对:

    常用属性:
        keys            获取所有的key值
        values          获取所有的value值
        isEmpty         是否为空
        isNotEmpty      是否不为空
    常用方法:
        remove(key)     删除指定key的数据
        addAll({...})   合并映射  给映射内增加属性
        containsValue   查看映射内的值  返回true/false
        forEach   
        map
        where
        any
        every


*/

void main(){

 
  Map person={
    "name":"张三",
    "age":20
  };


  var m=new Map();
  m["name"]="李四";
  
  print(person);
  print(m);

//常用属性:

    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    print(person.keys.toList());
    print(person.values.toList());
    print(person.isEmpty);
    print(person.isNotEmpty);


//常用方法:
    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    person.addAll({
      "work":['敲代码','送外卖'],
      "height":160
    });

    print(person);



    person.remove("sex");
    print(person);



    print(person.containsValue('张三'));
}
View Code

forEach, map, where, any, every使用

/*
        forEach     遍历
        map         元素处理
        where       条件筛选
        any         任何一个满足条件返回true
        every       每一个都要满足条件返回true
*/
void main(){


       List myList=['香蕉','苹果','西瓜'];

      //for循环 数组遍历
      for(var i=0;i<myList.length;i++){
        print(myList[i]);
      }


      for(var item in myList){
        print(item);
      }

      //forEach 数组遍历
      myList.forEach((value){
          print("$value");
      });

      myList.forEach((value)=>print(value));
    
    



      List myList=[1,3,4];

      List newList=new List();

      //for循环 数组中的每个元素增加2倍
      for(var i=0;i<myList.length;i++){

        newList.add(myList[i]*2);
      }
      print(newList);





      List myList=[1,3,4];   

      //map 数组中的每个元素增加2倍   
      var newList=myList.map((value){
          return value*2;
      });
       print(newList.toList());





      List myList=[1,3,4,5,7,8,9];

      //筛选数组中大于5的元素
      var newList=myList.where((value){
          return value>5;
      });
      print(newList.toList());



      List myList=[1,3,4,5,7,8,9];

      var f=myList.any((value){   //只要集合里面有满足条件的就返回true

          return value>5;
      });
      print(f);



      List myList=[1,3,4,5,7,8,9];

      var f=myList.every((value){   //每一个都满足条件返回true  否则返回false

          return value>5;
      });
      print(f);






      set

      var s=new Set();

      s.addAll([1,222,333]);

      s.forEach((value)=>print(value));



      //map

       Map person={
          "name":"张三",
          "age":20
        };

        person.forEach((key,value){            
            print("$key---$value");
        });


}        
View Code
原文地址:https://www.cnblogs.com/jiefangzhe/p/13548869.html