数值类型
- int 整数值
- double 浮点数
- num int和double的父类
十进制、十六进制
int a = 111;
int b = 0xF;
print(a); // 111
print(b); // 15
科学计数法
num a = 3e9;
print(a); // 3000000000.0
double b = 2e2;
print(a); // 200.0
数值转换
int a = int.parse('12'); // String -> int
double b = double.parse('1.23'); // String -> double
print(a); // 12
print(b); // 1.23
String c = 12.toString(); // int -> String
String d = 1.23.toString(); // double -> String
print(c); // 12
print(d); // 1.23
double e = 1.8;
int f = e.toInt(); // double -> int
print(f); // 1
位运算
&与运算(同时为1则为真)
var a = 3;
var b = 11;
print(a&b); // 3
|或运算
var a = 3;
var b = 11;
print(a|b); // 11
~非运算
var a = 3;
print(~a); // -4
^异或运算
var a = 3;
var b = 11;
print(a ^ b); // 8
移位运算符
<<左移
var a = 2;
a = a << 1;
print(a); // 4
>>右移
var a = 2;
a = a >> 1;
print(a); // 1
布尔(bool)
只有两个对象是布尔类型的:true 和 false 所创建的对象, 这两个对象也都是编译时常量。
bool a;
assert 断言
var a = true;
assert(a);
var name = '';
assert(name.isEmpty);
assert(name.isNotEmpty);
var num = 0 / 0;
assert(num.isNaN);
注意: 断言只在检查模式下运行有效,如果在生产模式 运行,则断言不会执行。
逻辑运算符
&&逻辑与: 都为true的时候结果才为真
bool a = true;
bool b = true;
assert(a && b);
||逻辑或:只要有一个为true结果就为true
bool a = true;
bool b = false;
assert(a || b);
!逻辑非: 就是取反,即为true的时候,结果为false,反之亦然。
bool a = true;
bool b = !a;
print(b);
关系运算符
==等于
if(a == b) {}
!=不等于
if(a != b) {}
>大于
if(a > b) {}
>=大于或等于
if(a >= b) {}
<小于
if(a < b) {}
<=小于或等于
if(a <= b) {}