Dart变量
1.数字
- 分为 int,double 以及num 类型,num是int和double的集合
int n = 3;
double n = 3.5;
num n = 3;
num n = 3.5;
- 常用的api,记住,所有的变量都是对象,可以使用 . 来访问其定义的方法,如下
num n = 3.5;
//取绝对值
print(n.abs());
//转换为字符串
print(n.toString());
//取余数
print(n.remainder(5));
//返回比大小结果
print(n.compareTo(10));
2.字符串
- 只有 String 类型,单双引号都可以,三个引号也可以,三个引号可以包含换行符的字符串
- 正则表达式使用字符串
RegExp(r'正则表达式字符串');
String str1 = "hello world";
String str2 = "!";
//使用 + 拼接
print(str1 + str2);
//使用 变量引用方式拼接
print("$str1 $str2");
//字符串分割,如果不传参数,则分割字符都会分割,最终形成一个字符数组,中间以逗号隔开
print(str1.split(''));
//传入空格符,则只会到匹配到空格符的地方分割
print(str1.split(' '));
//去除字符串的空格
print(str3.trim());
//判断字符串是否空
print(str1.isEmpty);
print(str1.isNotEmpty);
//字符串替换
print(str1.replaceAll("world", "dart"));
//字符串正则匹配替换
print(str1.replaceAll(RegExp(r"\d+"), '_'));
//字符串查找
print(str1.contains("lo "));
//字符串定位
print(str1.indexOf("ll"));
bool
- bool只有两个值,true和false,最好显示的判断bool的真假
list数组
- Dart中的数组,由对象 List 表示,有两种声明方式
//字面量方式
List mylist = []; //不限定数据类型
List mylist = <int>[]; //限定数据类型为int
//构造函数方式
List mylist = new List.empty(growable:true); //不限长度的空列表,growable,可命名参数,使用方法是 参数:值
List mylist = new List.filled(5, "str"); //声明指定长度的填充列表
- 扩展操作符 ...
List mylist2 = ["i", ...mylist]; //拼接list
- 常用api
List mylist = ['a', 'b', 'c', 1, 2, 3]; //声明不限制类型数组
//添加元素
mylist.add(4);
//求长度
print(mylist.length);
//反转的数据已经不是数组了,需要再次转换为数组
print(mylist.reversed.toList());
//添加多个元素
mylist.addAll([4, 5, 6]);
//指定位置删除/添加元素,清空,合并元素等等
遍历列表
- for 循环
c 风格循环 - for in 循环
变量迭代循环 - forEach()
遍历列表 - map()
遍历并处理元素,然后生成新的列表 where()
返回满足条件的数据
- any()
只要有一项满足条件,即返回 true - every()
判断是否每一项都满足条件,都满足条件才返回 true
- for 循环
[!NOTE]
此处引入一些语法,例如 => 的使用,该箭头后跟着一行代码,整体表示只有一行代码的函数
bool isodd(n) => n % 2 == 0;
var oddnum = mylist.where((e) => isodd(e));
- 多维数组,可以有api将其展开
var pairs = [
[1, 2],
[3, 4]
];
set 无序且去重的集合
- Set 是一个无序的,元素唯一的集合
- Set有字面量和构造函数两种声明方式 (字面量中用大括号)
- 无法通过下标取值
具有集合特有的操作
- 例如: 求交集,并集、 差集等,都有api
- set和数组可以相互转换,但数组转set时会自动去重
// 字面量声明
var myset = <int>{1, 2, 3};
//构造函数声明
var myset = new Set();
map
- Map 是一个无序的键值对 (key-value)映射。通常被称作哈希或字典。
声明方式,两种
- var map = {key1: value1, key2: value2};
- var map = new Map();
- map[key'’] = value;