数据类型
-
Dart中关于数值类型只有 int 和 double 两种,他们都来自共同的父类num。相较于java:Dart中的int就是long和int,double就是double和float。
-
Dart中的布尔类型用bool表示。
-
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);
- 如果想要用多行表示可以使用两个'''来包括。
-
Dart中的Object也是所有类的公共父类。
-
除此之外Dart中还有两个特别的类型,var和dynamic:
- Object 是Dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null)。
- dynamic与Object不同的是,dynamic声明的对象编译器会提供所有可能的组合, 而Object声明的对象只能使用Object的属性与方法, 否则编译器会报错
- dynamic与var一样都是关键词,声明的变量可以赋值任意对象。
-
数组(List),在Dart中并没有java中的--Array和List--之分。Dart中的关键字new是可以省略的。声明声明方式分为
List<String> l1=List(); List<String> l2=['1','2']; List<String> l3=<String>[]; var l4=<String>[];
-
Map,Dart中是没有TreeMap的,只有HashMap一个子类,用于存储键值对结构的数据。
Map m1=Map(); Map<String,String> m2={"1":"1","2":"2"}; var m3=<String,String>{"1":"1","2":"2"};
-
Set也是集合的一种,需要保持元素唯一。
-
Queue是Dart中的队列,收尾操作效率比较高。支持
var m=new Queue.from([1,2]); m.removeFirst、m.removeLast
等操作。 -
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));//返回新对象,不改变之前对象
-
Dart中还有两个特殊的关键字:final和const. final 和 const修饰的变量都不可以改变值, 两者区别在于:const 变量是一个编译时常量,final变量在第一次使用时被初始化。被final或者const修饰的变量,变量类型可以省略。
注:Dart中是没有基本类型的,所有也不会出现默认值的情况,当我们声明一个变量却没有给其赋值的时候,他的值就是null。
携书弹剑走黄沙,瀚海天山处处家