全部章節(jié)的筆記:
1.使用var聲明變量遣鼓,可賦予不同類型的值。如果不初始化變量的值重贺,則默認(rèn)是null骑祟。賦值以后變量的數(shù)據(jù)類型就已經(jīng)確定回懦。
2.使用final聲明一個(gè)只能賦值一次的變量。
3.使用const聲明常量曾我。使用const聲明的必須是編譯期常量(在編譯的時(shí)候就能確定的值)粉怕。
4.isNaN是否是非數(shù)字,isEven是否是偶數(shù)抒巢,isOdd是否是奇數(shù)贫贝。abs()絕對(duì)值,round()四舍五入蛉谜,floor()向下取整稚晚,ceil()向上取整,toInt()轉(zhuǎn)成整型型诚,toDouble轉(zhuǎn)成浮點(diǎn)型客燕。~/除完再取整。
5.使用3個(gè)引號(hào)可以定義多行字符串狰贯。字符串中加入”\n”也開始以換行也搓。在字符串引號(hào)前邊加上“r”,則不會(huì)轉(zhuǎn)義涵紊“剩“+”進(jìn)行多個(gè)字符串相加∶“*n”將字符串復(fù)制n次颤练。“==”用于判斷兩個(gè)字符串是否相等驱负∴戮粒“[n]”用于去除字符串中的第n個(gè)索引的子字符串。
使用”${}”打印表達(dá)式的值跃脊,打印單個(gè)變量的值不用加“{}”宇挫。
length打印字符串的長(zhǎng)度∝遗遥“isEmpty”判斷字符串是否為空捞稿。
“contains()是否包含某個(gè)字符串”∑捶欤”substring(startIndex,endIndex)截取一段字符串”≌煤ィ“
startsWith()”是否以某個(gè)字符串開頭咧七。“endsWith()是否以某個(gè)字符串結(jié)尾”任斋。
“indexOf()“某個(gè)字符串的下標(biāo)继阻。”lastIndexOf()”最后一次出現(xiàn)某個(gè)字符串的下標(biāo)∥灵荩”
toLowerCase()“轉(zhuǎn)為小寫抹缕,”toUpperCase()“轉(zhuǎn)為大寫。
“trim()”清除空格墨辛∽垦校”trimLeft()“清除前邊的空格《么兀”trimRight()“清除后邊的空格奏赘。”
split()“分割字符串。”replace(),replaceAll(‘old’,’new‘)“替換字符串笆檀。
6.創(chuàng)建List(數(shù)組):var list=[1,2,3]鸵闪。創(chuàng)建不可變List:var list=const[1,2,3]。構(gòu)造創(chuàng)建:var list=new List();绝淡。list.length打印數(shù)組的長(zhǎng)度。list.add(元素)添加元素。list.insert(index,value)給指定索引的位置添加元素搪锣。list.remove(元素)移除某個(gè)元素。list.clear()清空數(shù)組中的元素剂癌。list.indexOf(元素)獲取指定元素的索引淤翔,找到則返回對(duì)應(yīng)的索引,找不到則返回-1佩谷。list.sort()給數(shù)組按照ASCII碼排序旁壮。list.sublist(start,end)截取字符串。list.forEach(print)打印list中的元素谐檀,還可以傳入自定義方法抡谐。
7.創(chuàng)建Map:var map1={“key1”:value1”,”key2”:”value2”}。創(chuàng)建不可變Map:var map2=const{“key1”:”value1”}桐猬。構(gòu)造創(chuàng)建:var map3=vew Map()麦撵。length字典中鍵值對(duì)的個(gè)數(shù)。isEmpty()是否為空溃肪,isNotEmpty()是否不為空免胃。keys獲取所有的鍵。values獲取所有的值惫撰。containsKey()是否包含某個(gè)鍵羔沙。containsValue()是否包含某個(gè)值。remove()移除某個(gè)元素厨钻。forEach循環(huán)遍歷字典扼雏。map.forEach(f);
void f(key, value){
print(“key=${key},value=$value”);
}
list轉(zhuǎn)換為map坚嗜,list.asMap(),自動(dòng)添加索引作為map的key诗充。
8.dynamic聲明變量的時(shí)候變量的類型是動(dòng)態(tài)改變的苍蔬。
dynamic 1=10;
a=“test”;
var list=new List<dynamic>();?
list.add(1);
list.add(“test”);
list.add(true);
print(list);
9.??=賦值運(yùn)算符,int b=5;b??=10;如果b是空的蝴蜓、沒有值碟绑,則給b賦值10,否則保持原值励翼。
10.??運(yùn)算符蜈敢,String a;String b=‘java’;String c=a??b;如果a有值則c=a,如果a沒有值則c=b汽抚。
11.for…in循環(huán)語句for(var item in list){}抓狭。
12.break終止整個(gè)循環(huán),退出for循環(huán)造烁。continue終止當(dāng)前循環(huán)否过,繼續(xù)下一次循環(huán)。
13.switch…case語句中非空case必須有一個(gè)break惭蟋。continue語句會(huì)繼續(xù)執(zhí)行指定位置開始的語句苗桂。
Test:?
case ‘java’:
????print(‘java’);
????continue Test;
打印完java后,會(huì)跳轉(zhuǎn)到"Test"處繼續(xù)從上向下執(zhí)行告组。
14.方法也是對(duì)象煤伟,并且有具體類型Function。返回值類型木缝、參數(shù)類型都可省略便锨。
箭頭語法:=>expr是{return expr;}的縮寫。只適用于一個(gè)表達(dá)式我碟。
方法都有返回值放案。如果沒有指定,默認(rèn)return null最后一句執(zhí)行矫俺。
15.可選命名參數(shù):{param1,param2}吱殉,在調(diào)用函數(shù)的時(shí)候可以不傳大括號(hào)中的參數(shù)。prientPerson1(String name,{int age,String gender}){
????print(“name=$name,age=$age,gender=$gender”);
}
printPerson1(“hao”,age:20,gender:’Male’);厘托。
可選位置參數(shù):[param1,param2]友雳。
prientPerson2(String name,[int age,String gender]){
????print(“name=$name,age=$age,gender=$gender”);
}
printPerson2(“good”,18,’FeMale’);
如果存在具體固定的參數(shù),可選參數(shù)聲明铅匹,必須在固定的參數(shù)后面沥阱。
默認(rèn)參數(shù)值:
prientPerson3(String name,{int age=30,String gender}){
????print(“name=$name,age=$age,gender=$gender”);
}
printPerson3(“good”,18,’FeMale’);
當(dāng)沒有設(shè)置age時(shí),age的值是默認(rèn)30伊群。
16.方法可作為對(duì)象賦值給其他變量考杉。方法可作為參數(shù)傳遞給其他方法。
Function func=printHello;
func();
void printHello(){
????print(“hello”);
}
17.匿名方法:
var func=(str){
????print(“hi-$str”);
};
fun(‘a(chǎn)bc’);
((){
????print(“test”);
})();
這種寫法方法會(huì)自動(dòng)執(zhí)行舰始。
匿名方法:
a() {
????return (){
????????print(‘a(chǎn)bc’);
????};
}
18.閉包是一個(gè)方法(對(duì)象)崇棠。閉包定義在其他方法內(nèi)部的方法。閉包能夠訪問外部方法內(nèi)的局部變量丸卷,并持有其狀態(tài)枕稀。
a(){
????int count=0;
????printCount(){
????print(count++);
????}
????return printCount;//返回的是一個(gè)方法
}
var func=a();
func();
func();
func();