Dart数据类型
数据类型 | 声明示例 |
String | String a = "你好"; var a = "你好"; |
int | int b = 1; var b = 1; |
double | double c = 3.14; var c = 3.14; |
bool | bool d = true; |
List | var e = ["1","2","3"] List e = new List(); var e = new List<String>(); |
Map | var person = { "name":"张三", "age":20 }; var f = new Map(); |
- var声明与类型声明有什么区别?
Dart是比较奇怪,它综合了静态语言与动态语言的特点。
例如,dart可以和python、JavaScript等动态语言一样,可以不预先定义变量类型,直接用var声明一个变量,dart会自动识别出该变量的类型。
但是,假如你用var来赋值a为字符串,那么变量a一直只能是赋值为字符串类型。这与python和JavaScript是不同的。
所以Dart还是属于静态语言(强类型语言)。
- dart有两种方式声明常量,final与const,这两者有什么不同?
平常使用时,用法好像完全一样,实际上还有区别的。
const PI = 3.14159; print(PI); final PI = 3.14159; print(PI);
但是某些使用时会有问题,例如:
final a = new DateTime.now(); print(a) // 正常打印 const a = new DateTime.now(); // 会报错
是因为const是编译时常量,在编译期间已经确定了下来。
最重要的是它是运行时常量,并且final是惰性初始化,在执行时才进行初始化。
还有一个区别需要注意:
虽然const与final修饰的常量都不可以继续被赋值。但是final修饰的常量,这个常量包含这集合,那么这个集合还是可变的。而const修饰的常量,即使这个常量包含着集合,由于const传递了不可变性,这个集合是不能进行变化的。
final list0 = [1,2,3]; list0[0] = 4; print(list0); // [4,2,3] const list1 = [1,2,3]; list1[0] = 4; // 报错 print(list1);
相关推荐
RedCode 2020-10-28
万物weiyi 2020-06-16
Samlss 2020-06-04
liutong 2020-05-12
万物weiyi 2020-03-04
mryangjx 2020-03-01
liutong 2020-02-26
liutong 2020-02-22
Samlss 2020-02-22
chaoxiao 2020-02-15
mryangjx 2020-01-28
mryangjx 2020-01-25
liutong 2020-01-12
apowerfulman 2020-01-07
Samlss 2020-01-07
万物weiyi 2020-01-01
mryangjx 2019-12-25
Samlss 2019-12-15