以下只記了一部分我覺得有必要記的內容
一、常量與變量
運算符:~/? 取整
常用屬性: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 返回值
}
可賦值給變量,通過變量進行調用
可再其他方法中直接調用或傳遞給其他方法
十四、閉包
閉包是一個方法(對象)
閉包定義在其他方法內部
閉包能夠訪問外部方法內的局部變量,并持有其狀態(這是閉包最大的作用,可以通過閉包的方式,將其暴露出去,提供給外部訪問)