Dart中的数据类型

变量与常量

变量

  • 使用 var 声明变量,可赋予不同类型的值
  • 未初始化的变量,默认值为 null
  • 使用 final 可以声明只能赋值一次的变量

常量

  • const 可以用来声明常量
  • 使用 const 声明的必须是编译期的常量

数值类型 Number

数值型变量通过以下方式定义:

1
2
3
4
5
6
7
8
9
10
11
void main(){
num a = 6;
// num 类型的变量可以在定义整型之后改为浮点型
a = 8.8;

int b = 9;

double c = 1.2;

// 指定整型或者浮点型以后不可以接受其他类型的值
}

运算符

+ - * / ~/(取整) %

常用属性

  • isNaN 是否是非数字
  • isEven 是否是奇数
  • isOdd 是否是偶数

常用方法

  • abs() 取绝对值
  • round() 四舍五入
  • floor() 向下取整
  • ceil() 向上取整
  • toInt() 转成整型
  • toDouble() 转成浮点型

字符串 String

创建字符串

  • 单引号,双引号创建
  • 三引号,双引号创建多行字符串
  • 使用 r 创建原始 raw 字符串 (会保留字符串中的转义字符)
  • 插值表达式 ${变量}
1
2
3
4
5
6
7
8
9
10
11
12
String str1 = "字符串1";

String str2 = """
换行字符串
第二行

""";

String str3 = r"原始 \n 字符串";
// 另 + 可以拼接字符串 * 可以复制字符串 [] 取字符 == 判断相等

print("插值表达式 ${str1}");

字符串属性

  • length 长度
  • isEmpty 是否为空

字符串方法

  • contains() 是否包含
  • subString(startIndex,endIndex) 截取字符串 包含 startIndex 不包含 endIndex
  • startsWidth() ,endsWidth() 是否以什么开始或者结尾
  • indexOf() , lastIndexOf() 查找字符索引位置
  • toLowerCase() , toUpperCase() 转大小写
  • trim() , trimLeft() , trimRight() 去掉空格
  • split() , replaceAll() 切割替换

数组 List

创建数组

1
2
3
4
// list中的元素是可以不同的,访问值可以通过 [] 这种方式还能设置值
var list = [1,2,3];
var list = const [1,2,3] // 创建一个不可变List
var list = new List();

数组方法

  • add() insert(位置,值) 添加 插入值
  • remove(值) clear() 删除 清空
  • indexOf() lastIndexOf()
  • sort() sublist() 排序 获取子元素
  • shuffle() asMap() forEach() 打乱数组 转Map 遍历

键值对 Map

创建map

1
2
3
4
5
6
7
8
9
10
var p = {
name: "Autumn",
age: 18
};
// 声明不可变 map
var p2 = const {
name: "小华"
}
// 获取元素 设置元素
p["name"]

常用操作

  • isEmpty() isNotEmpty() 是否为空
  • keys values 所有的键或者值
  • containsKey() containsValue() 是否包含键或者值
  • remove(键) 删除
  • forEach() 遍历

动态类型 dynamic

dynamic 可以定义一个动态类型

1
2
dynamic s = 123;
s = "lalal";

该类类型可以应用于泛型中

1
2
3
4
// 创建一个可以装任意类型数据的列表
var list = new List<dynamic>();
list.add(123);
list.add("hahah")