美文网首页
Dart 基础语法day1

Dart 基础语法day1

作者: XieHenry | 来源:发表于2020-08-11 11:44 被阅读0次

    1.变量和常量

    变量:var
    常量: final 和 const
    变量区别:
    const值不变,一开始就得赋值,final可以开始不赋值,只能赋一次。
    而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化
    

    2.常用的数据类型(有些语法和OC很相似)

    字符串
    String str1 = '你好';
    String str2 = 'Dart';
    print(str1 + str2);
    
    数值
    int         必须是整型
    double      既可以是整型 也可是浮点型
    
    布尔 bool
    bool flag=true
    
    数组
    1、第一种定义List的方式
    var l1 = ['aaa', 'bbbb', 'cccc'];
    print(l1);
    print(l1.length);
    print(l1[1]);
    
    2、第二种定义List的方式
    var l2 = new List();
    l2.add('张三');
    l2.add('李四');
    l2.add('王五');
    
    3、定义List指定类型
    var l3 = new List<String>();
    l3.add('张三');
    print(l3);
    
    字典
    1.第一种定义 Maps的方式
    var person = { //也可以var改为Map,指定类型
        "name": "张三",
        "age": 20,
        "work": ["程序员", "送外卖"]
    };
    print(person);
    print(person["name"]);
    print(person["work"]);
    
    2.第二种定义 Maps的方式
    var p = new Map();
    p["name"] = "李四";
    p["age"] = 22;
    p["work"] = ["程序员", "送外卖"];
    print(p);
    print(p["age"]);
    

    3.类型判断

    var str = 123;
    if (str is String) {
        print('是string类型');
    } else if (str is int) {
        print('int');
    } else {
        print('其他类型');
    }
    

    4.运算符,表达式以及条件判断和OC类似。

    • ??=
    //表示如果b为空的话把 23赋值给b,不为空可以忽略掉
    int b;
    b??=23;
    print(b);
    
    • ??
    //如果a为空,b打印10.不为空,打印22。 
    var a=22;
    var b= a ?? 10;
    print(b);
    

    5.类型转换

    // String类型转成Number类型使用int.parse()
    //String类型转成double类型使用double.parse()
    String str = '123';
    var myNum = int.parse(str);
    
    // Number类型转换成String类型使用 toString()
    var num = 2;
    String str = num.toString();
    print(str is String);
    

    6.++的区别

    在赋值运算里面 如果++ -- 写在前面 这时候先运算 再赋值,如果++ --写在后面 先赋值后运行运算

    var a=10;
    var b=a++; //先a的值赋值给b,再a=a+1 
    
    print(a);  //11
    print(b);  //10
    
    var a=10;
    var b=++a;//先a=a+1 ,再将a的值赋值给b
    
    print(a);  //11
    print(b);  //11
    

    7.List的常用方法

    定义方法参考上面的 [2.常用的数据类型]

    List myList=['香蕉','苹果','西瓜'];
    print(myList.length);     //length          长度
    print(myList.isEmpty);    //isEmpty         是否为空
    print(myList.isNotEmpty); //isNotEmpty      是否不为空
    print(myList.reversed);   //reversed        翻转
    var newMyList=myList.reversed.toList(); //toList()    其他类型转换成List
    
    myList.add('桃子');             //add  增加
    myList.addAll(['桃子','葡萄']);  //addAll 拼接数组
    print(myList.indexOf('苹果'));  //indexOf 查找数据,查找不到返回-1  查找到返回索引值
    myList.remove('西瓜');          //remove 删除  传入具体值
    myList.removeAt(1);            // removeAt 删除  传入索引值
    myList.fillRange(1, 3,'aaa');  //fillRange   从下表1-3修改为aaa 
    myList.insert(1,'aaa');        //insert(index,value) 指定位置插入    
    myList.insertAll(1, ['aaa','bbb']);  //insertAll(index,list)  指定位置插入List
    
    var str=myList.join('-');      // join()  List转换成字符串
    print(str);
    
    var str1='香蕉-苹果-西瓜';      // split() 字符串转化成List
    var list=str.split('-');
    

    8.Set

    用它最主要的功能就是去除数组重复内容
    Set是没有顺序且不能重复的集合,所以不能通过索引去获取值

    List myList = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '香蕉', '苹果'];
    var s = new Set();
    s.addAll(myList);
    print(s);
    print(s.toList());
    

    9.Map

    定义方法参考上面的 [2.常用的数据类型]

    Map person={
          "name":"张三",
          "age":20,
          "sex":"男"
        };
    
    print(person.keys);         //keys  获取所有的key值
    print(person.values);       //values  获取所有的value值
    print(person.isEmpty);      //isEmpty  是否为空
    print(person.isNotEmpty);   //isNotEmpty  是否不为空
    person.remove("sex");       //remove(key)  删除指定key的数据
    
    person.addAll({             //addAll({...})   合并映射  给映射内增加属性
        "work":['敲代码','送外卖'], 
        "height":160
       });
    
    print(person.containsValue('张三')); //containsValue  查看map内是否有某个值
    print(person.containsKey('age'));   //containsKey 查看map内是否有某个key
    

    10.通用方法(forEach,map,where,any,every)

    //forEach 遍历
    List myList = ['香蕉', '苹果', '西瓜'];
    myList.forEach((value) {
        print("$value");
      });
    //结果返回   香蕉  苹果  西瓜
    
    Map person = {"name": "张三", "age": 20};
    person.forEach((key, value) {
        print("$key---$value");
      });
    //返回 name---张三    age---20
    
    //map 主要修改集合内的数据
    List myList=[1,3,4];
    var newList=myList.map((value){
           return value*2;
    });
    print(newList.toList()); //结果返回  [2, 6, 8]
    
    //where 满足条件的返回一个集合
    List myList = [1, 3, 4, 5, 7, 8, 9];
    var newList = myList.where((value) {
        return value > 5;
    });
    print(newList.toList()); //结果返回[7, 8, 9]
    
    //any  只要集合里面有满足条件的就返回true
    List myList = [1, 3, 4, 5, 7, 8, 9];
    var f = myList.any((value) {
       return value > 5;
    });
    print(f);  //结果为true
    
    //every  每一个都满足条件返回true  否则返回false
    List myList = [1, 3, 4, 5, 7, 8, 9];
    var f = myList.every((value) {
        return value > 5;
    });
    print(f);   //结果为false
    

    相关文章

      网友评论

          本文标题:Dart 基础语法day1

          本文链接:https://www.haomeiwen.com/subject/bszqdktx.html