dart内置数据类型
1、Numbers,包括如下两种形式的数据类型
int:整型数据,根据平台的不同,不超过64字节,运行在dart虚拟机上时,值的范围为-2^63 到 2^63-1;编译成js的number类型时,值的范围为 -2^53 到 2^53 - 1。
int a = 12;
var b = 10; //自动推断为int
int c = 13.0; //报错
int d = 0xADE; //16进制
print(d); // 2781
double:64-bit(双精度)的浮点型数据,按照 IEEE 754 标准来指定的。
var a = 23.0;
double b = 12.0;
double c = 10; // dart2.1后自动转型为浮点型 10.0
num: int与double都继承自num,num既可以存储int类型数据,也可存储浮点型数据,num类型包括基本的运算符,abs(),ceil()等基本方法,>>按位运算符在int中,不包括。
num a = 23;
num b = 34.0;
a = 12.0;
b = 12;
string和number类型互转
// String -> int
var one = int.parse('1');
assert(one == 1);
// String -> double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);
// int -> String
String oneAsString = 1.toString();
assert(oneAsString == '1');
// double -> String
String piAsString = 3.14159.toStringAsFixed(2); //保存两位小数
assert(piAsString == '3.14');
int的位运算符(移位操作,效率最高)
3 << 1; //6
3 >> 1; //1
3 | 4; //7
2、String类型
①dart的String是一系列的UTF-16代码单元,你可以使用单引号或者双引号来创建字符串
String str1 = 'sjksadkj';
String str2 = "ashdkjqwhd";
②你可以通过${expression}将一个表达式的值放入字符串中,如果表达式是一个标志符,你可以省略{}
var str1 = "sdwdsd";
var str2 = "asdqwd${str1}"; //var str2 = "asdqwd$str1";
③你可以通过相邻字面量字符串或者+操作符来连接字符串
String a = "sdwd"
"dwdwd";
String b = 'sdwd' + 'wddsd';
④你还可以通过三引号(''')创建多行字符串
String test = '''dsdw
adwqd
qwdwqd
''';
⑤通过字符r前缀创建不会处理字符串里的${}表达式和转义符
var s = r'In a raw string, not even \n gets special treatment.';
print(s);//In a raw string, not even \n gets special treatment.
3、布尔类型Boolean
为了表示布尔值,Dart具有一个名为bool
的类型。只有两个对象具有bool类型:布尔字面量 true
和false
,它们都是编译时常量。
bool = true;
bool = false;
var sr = "";
print(sr.isEmpty); // true