美文网首页flutter
Dart语言中的基本类型

Dart语言中的基本类型

作者: 习惯了_就好 | 来源:发表于2018-11-20 17:32 被阅读7次

    Dart 里所有东西都是对象,所有这些对象的父类都是Object。
    var、Object、dynamic都可以指定任意类型数据。
    三者的区别为

    //var只是一种语法,类似JavaScript,赋值的时候确定了具体的类型
          var obj1;
          obj1 = 123;
          obj1 = "123";
    
          //所有的类的父类都是Object,所以Object可以表示任意类型的变量
          //Object是在运行时候确定实际类型的
          Object obj2;
          obj2 = "123";
          obj2 = -123;
    //      obj2 ++;// 编译直接报错
    
          //as 关键字 可以强制转换
          print((obj2 as int).abs());
    
          //dynamic是在运行时确定实际类型的
          dynamic obj3 = "123";
          //is关键字可以进行运行时检测
          if (obj3 is int) {
            obj3 ++; //运行时才报错,可以添加检测
          }
    

    基本类型: Number(int,double)、String、boolean、List (also known as arrays)、Map、 Number包括:int 类型和double 类型

    int整型是不超过64位,不同的平台位数不一样。如果是DartVM, 整型的范围是263-1到-263。如果需要编译成js代码,那么整型的范围就是253-1到-253。

    浮点型是64位的数字,包括小数位数,并符合IEEE754标准。一个数字只要有小数点,就是double类型。

    int a = 1;
    
    int b = 10;
    
    int c = 0xDEADBEEF;
    
    double d = 1.0;
    
    // double e = 1;// 运行时报错 Try changing the type of the left hand side, or casting the right hand side to 'dart.core::double'
    
    double f = 10.0;
    
    数据运算:+、 - 、* 、/ 、 ~/ 、 % (/除法,不会去取整 ; ~/取整;%取余)
    
    print("a:$a b:$b c:$c d:$d f:$f ");
    
    print("a + b=${a + b} ,a + d=${a + d}");
    
    print("a - b=${a - b} ,a - d=${a - d}");
    
    print("a * b=${a * b} ,a * d=${a * d}");
    
    print("a / b=${a / b} ,a / d=${a / d}");
    
    print("a ~/ b=${a ~/ b} ,a ~/ d=${a ~/ d}");
    
    print("a % b=${a % b} ,a % d=${a % d}");
    

    属性值:isNaN(是否是NaN)、isEven(是否是偶数)、isOdd(是否是奇数)、isFinite(是否是有限数)、isInfinite(是否是无限的)、isNegative(是否是负数)

    print("1是NaN吗?${a.isNaN},1是奇数吗?${a.isOdd},1是偶数吗?${a.isEven},1是有限数吗?${a
    
    .isFinite},1是无限数吗?${a.isInfinite},1是负数吗?${a.isNegative}");
    

    Number转字符串toString()

    var age = 18;
    
    print("${age .toString()}");
    

    字符串转Number,parse()

    String age = "12";
    
    print("${int.parse(age)}");
    

    字符串

    //可以使用 单引号 和 双引号声明字符串
    
    var name = "zhangsan";
    
    var clazz = 'one';
    
    //单、双引号可以互相嵌套,转义不转义效果一样
    
    var str1 = "abcd'efg'";
    
    print(str1);
    
    var str4 = "abcd\'efg\'";
    
    print(str4);
    
    var str2 = 'abcd"efg"';
    
    print(str2);
    
    var str3 = 'abcd\"efg\"';
    
    print(str3);
    
    ${表达式}的使用
    
    String age = "12";
    
    print("年龄是:${int.parse(age)}");
    

    布尔值

    var m;
    
    print("var m 是null吗${m == null}");
    
    m = 1 / 0;
    
    print("1 / 0是NaN吗?${m.isNaN}");
    
    m = 0 / 0;
    
    print("0 / 0是NaN吗?${m.isNaN}");
    
    m = 0 / 0;
    
    print("0 / 1是NaN吗?${m.isNaN}");
    
    m = "";
    
    print("''是空吗?${m.isEmpty}");
    
    m = " ";
    
    print("' '是空串吗?${m.isEmpty}");
    

    List

    var list = List<int>();
    
    list.add(1);
    
    list.add(2);
    
    print("list的长度:${list.length}");
    
    var list1 = new List<int>();
    
    var list2 = [1, 2];
    
    var list3 = <int>[];
    
    var list4 = const[1, 2]; // list4 指向的是一个常量,我们不能给它添加元素(不能修改它)
    
    // list4 本身不是一个常量,所以它可以指向另一个对象
    
    list4 = [4, 5, 6];
    
    const list5 = [1, 2]; //等价于 var list4 = const[1, 2];
    
    var list6 = [1, 2, 3, 4, 5, 6];
    
    for (var i in list6) {
    
    print(i);
    
    }
    

    Map

    var map = Map<String, int>();
    
    map["abc"] = 1;
    
    map["cde"] = 2;
    
    map["fgh"] = 3;
    
    print("cde对应的值:${map["cde"]}");
    
    map["cde"] = 4;
    
    print("修改后cde对应的值:${map["cde"]}");
    
    if (map["mn"] == null) {
    
    print("key不存在");
    
    }
    
    print("map的长度:${map.length}");
    
    // 判断是否为空
    
    print(map.isEmpty); // 输出结果:false
    
    print(map.isNotEmpty); // 输出结果:true
    
    // 获取到所有的 key
    
    print(map.keys);
    
    // 获取到所有的 values
    
    print(map.values);
    
    // 判断是否包含某个key
    
    print(map.containsKey("cde"));
    
    // 判断是否包含某个value
    
    print(map.containsValue(5));
    
    var map2 = const{
    
    "num": 123,
    
    "name": "xiaoming"
    
    };
    
    var map3 = <String, String>{};
    
    map3["aaa"] = "lisi";
    
    map3["abc"] = "zhangsan";
    
    if (map3 is Map<String, String>) {
    
    map3["bbb"] = "wangwu";
    
    }
    
    for (var key in map3.keys) {
    
    print("$key--${map3[key]}");
    
    }
    
    

    练习demo,链接https://gitee.com/xgljh/Flutter

    相关文章

      网友评论

        本文标题:Dart语言中的基本类型

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