Flutter(一)——Dart常用数据类型

3,562 阅读2分钟

数据类型

  1. Dart中关于数值类型只有 intdouble 两种,他们都来自共同的父类num。相较于java:Dart中的int就是long和int,double就是double和float。

  2. Dart中的布尔类型用bool表示。

  3. Dart中没有char类型,只有String。在Dart中,单引号(')和双引号(")都表示Stirng。

    • Dart中的String拼接和java不同,他们支持美元符拼接($),或者简单的相邻放置,都可以实现拼接.
    var a='a''b''c';
    var b='$a'; ///或者'${a}'
    var c='a'+'b'+'c';
    print(a);
    print(b);
    print(c);
    
    • 如果想要用多行表示可以使用两个'''来包括。
  4. Dart中的Object也是所有类的公共父类。

  5. 除此之外Dart中还有两个特别的类型,var和dynamic:

    • Object 是Dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null)。
    • dynamic与Object不同的是,dynamic声明的对象编译器会提供所有可能的组合, 而Object声明的对象只能使用Object的属性与方法, 否则编译器会报错
    • dynamic与var一样都是关键词,声明的变量可以赋值任意对象。
  6. 数组(List),在Dart中并没有java中的--Array和List--之分。Dart中的关键字new是可以省略的。声明声明方式分为

    List<String> l1=List();
    List<String> l2=['1','2'];
    List<String> l3=<String>[];
    var l4=<String>[];
    
  7. Map,Dart中是没有TreeMap的,只有HashMap一个子类,用于存储键值对结构的数据。

    Map m1=Map();
    Map<String,String> m2={"1":"1","2":"2"};
    var m3=<String,String>{"1":"1","2":"2"};
    
  8. Set也是集合的一种,需要保持元素唯一。

  9. Queue是Dart中的队列,收尾操作效率比较高。支持var m=new Queue.from([1,2]); m.removeFirst、m.removeLast等操作。

  10. Dart中还有个一Date类型,用于操作日期。有一点需要注意的是,Dart中的日期是从1开始的,只一点和Java和JavaScript是有区别的(他们从0开始)。

    var mar=Date.fromString('2020-01-01 18:40:12.000');
    //var mar=Date(2020,1,1,18,40.12,0);
    var now=new Date.now();
    var diff=now.difference(mar);//Duration对象,支持天到毫秒
    diff.inDays();
    var n=mar.add(new Duration(days:15));//返回新对象,不改变之前对象
    
  11. Dart中还有两个特殊的关键字:final和const. final 和 const修饰的变量都不可以改变值, 两者区别在于:const 变量是一个编译时常量,final变量在第一次使用时被初始化。被final或者const修饰的变量,变量类型可以省略。

注:Dart中是没有基本类型的,所有也不会出现默认值的情况,当我们声明一个变量却没有给其赋值的时候,他的值就是null。

携书弹剑走黄沙,瀚海天山处处家