代码地址
以下只记了一部分我觉得有必要记的内容
一、常量与变量
运算符:~/ 取整
常用属性:isNaN(是否是非数字)、isEven(是否是偶数)、isOdd(是否是奇数)
常用方法:abs()(取绝对值)、round()(四舍五入)、floor()(大于它的最小整数)、ceil()(小于它的最大整数)、toInt()(变成整型)、toDouble()(变成浮点型)
二、字符串
字符串创建:可以使用三个单引号或者三个双引号创建多行字符串、使用r创建raw原始的字符串
字符串操作:字符串也可以进行+ * == [],分别为字符串相加,乘以倍数,是否相等,取某个字符
插值表达式:${expression}
常用属性:length、isEmpty、isNotEmpty
常用方法:
三、布尔型
表示:bool
四、List
List中的元素可以是有不同的类型
创建List :var list=[1,2,3];
创建不可变得List:var list = const[1,2,3]
构造创建:var list=new List();//在dart2 中已经去掉了new关键字
sort排序:根据hashcode值排序
sublist:获取子列表
五、Map
创建map:var user={"name":"zoey","age":18}
创建不可变的map:var user=const {"name":"zoey","age":18}
构造创建var user=new Map();
var map1={"first":"dart",1:true};//key还可以不是字符串??
六、dynamic
可以理解为泛型
七、关系运算符
判断内容是否相同使用==,而在java中==表示的是判断两个引用是否相等,判断内容相当用的是equals
八、赋值运算符
基础运算符:=、??=
九、条件表达式
三目运算符;
??运算符:expr1??expr2: 如果expr1表达式的值为空,则使用第二个表达式的值,如果不为空,则使用第一个表达式的值;
十、循环语句
for循环;
for...in循环
十一、可选参数
可选命名参数:{param1,param2,...}
可选位置参数:[param1,param2,...]
//可选参数必须在必选参数后面
void main() {
//必填的参数不用写参数名,可选的参数必须要写参数名,而且可以跳过一些参数,不按顺序传,只要参数名对得上就可以了,这种方式用得比较多
printPerson1("zoey");
printPerson1("zoey", age: 20);
printPerson1("zoey", age: 20, gender: "female");
printPerson1("zoey", gender: "female",age: 20);
printPerson1("zoey", gender: "female");
print("-----------------------");
//根据参数的位置,默认的进行传参,但不能跳过某个参数
printPerson2("allen");
printPerson2("allen", 20);
printPerson2("allen", 20, "male");
}
//可选命名参数
printPerson1(String name, {int age, String gender}) {
print("name=$name,age=$age,gender=$gender");
}
//可选位置参数
printPerson2(String name, [int age, String gender]) {
print("name=$name,age=$age,gender=$gender");
}
十二、方法对象
方法可作为对象赋值给其他变量
方法可作为参数传递给其他方法
十三、匿名方法
(参数1,参数2,....){
方法体...
return 返回值
}
可赋值给变量,通过变量进行调用
可再其他方法中直接调用或传递给其他方法
十四、闭包
闭包是一个方法(对象)
闭包定义在其他方法内部
闭包能够访问外部方法内的局部变量,并持有其状态(这是闭包最大的作用,可以通过闭包的方式,将其暴露出去,提供给外部访问)