Flutter學習筆記

所有章節的筆記:java

1.使用var聲明變量,可賦予不一樣類型的值。若是不初始化變量的值,則默認是null。賦值之後變量的數據類型就已經肯定。數組

2.使用final聲明一個只能賦值一次的變量。閉包

3.使用const聲明常量。使用const聲明的必須是編譯期常量(在編譯的時候就能肯定的值)。函數

4.isNaN是不是非數字,isEven是不是偶數,isOdd是不是奇數。abs()絕對值,round()四捨五入,floor()向下取整,ceil()向上取整,toInt()轉成整型,toDouble轉成浮點型。~/除完再取整。對象

5.使用3個引號能夠定義多行字符串。字符串中加入」\n」也開始以換行。在字符串引號前邊加上「r」,則不會轉義。「+」進行多個字符串相加。「*n」將字符串複製n次。「==」用於判斷兩個字符串是否相等。「[n]」用於去除字符串中的第n個索引的子字符串。排序

使用」${}」打印表達式的值,打印單個變量的值不用加「{}」。索引

length打印字符串的長度。「isEmpty」判斷字符串是否爲空。rem

「contains()是否包含某個字符串」。」substring(startIndex,endIndex)截取一段字符串」。「字符串

startsWith()」是否以某個字符串開頭。「endsWith()是否以某個字符串結尾」。string

「indexOf()「某個字符串的下標。」lastIndexOf()」最後一次出現某個字符串的下標。」

toLowerCase()「轉爲小寫,」toUpperCase()「轉爲大寫。

「trim()」清除空格。」trimLeft()「清除前邊的空格。」trimRight()「清除後邊的空格。」

split()「分割字符串。」replace(),replaceAll(‘old’,’new‘)「替換字符串。

6.建立List(數組):var list=[1,2,3]。建立不可變List:var list=const[1,2,3]。構造建立:var list=new List();。list.length打印數組的長度。list.add(元素)添加元素。list.insert(index,value)給指定索引的位置添加元素。list.remove(元素)移除某個元素。list.clear()清空數組中的元素。list.indexOf(元素)獲取指定元素的索引,找到則返回對應的索引,找不到則返回-1。list.sort()給數組按照ASCII碼排序。list.sublist(start,end)截取字符串。list.forEach(print)打印list中的元素,還能夠傳入自定義方法。

7.建立Map:var map1={「key1」:value1」,」key2」:」value2」}。建立不可變Map:var map2=const{「key1」:」value1」}。構造建立:var map3=vew Map()。length字典中鍵值對的個數。isEmpty()是否爲空,isNotEmpty()是否不爲空。keys獲取全部的鍵。values獲取全部的值。containsKey()是否包含某個鍵。containsValue()是否包含某個值。remove()移除某個元素。forEach循環遍歷字典。map.forEach(f);

void f(key, value){

print(「key=${key},value=$value」);

}

list轉換爲map,list.asMap(),自動添加索引做爲map的key。

8.dynamic聲明變量的時候變量的類型是動態改變的。

dynamic 1=10;

a=「test」;

var list=new List<dynamic>(); 

list.add(1);

list.add(「test」);

list.add(true);

print(list);

9.??=賦值運算符,int b=5;b??=10;若是b是空的、沒有值,則給b賦值10,不然保持原值。

10.??運算符,String a;String b=‘java’;String c=a??b;若是a有值則c=a,若是a沒有值則c=b。

11.for…in循環語句for(var item in list){}。

12.break終止整個循環,退出for循環。continue終止當前循環,繼續下一次循環。

13.switch…case語句中非空case必須有一個break。continue語句會繼續執行指定位置開始的語句。

Test: 

case ‘java’:

    print(‘java’);

    continue Test;

打印完java後,會跳轉到"Test"處繼續從上向下執行。

14.方法也是對象,而且有具體類型Function。返回值類型、參數類型均可省略。

箭頭語法:=>expr是{return expr;}的縮寫。只適用於一個表達式。

方法都有返回值。若是沒有指定,默認return null最後一句執行。

15.可選命名參數:{param1,param2},在調用函數的時候能夠不傳大括號中的參數。prientPerson1(String name,{int age,String gender}){

    print(「name=$name,age=$age,gender=$gender」);

}

printPerson1(「hao」,age:20,gender:’Male’);。

可選位置參數:[param1,param2]。

prientPerson2(String name,[int age,String gender]){

    print(「name=$name,age=$age,gender=$gender」);

}

printPerson2(「good」,18,’FeMale’);

若是存在具體固定的參數,可選參數聲明,必須在固定的參數後面。

默認參數值:

prientPerson3(String name,{int age=30,String gender}){

    print(「name=$name,age=$age,gender=$gender」);

}

printPerson3(「good」,18,’FeMale’);

當沒有設置age時,age的值是默認30。

16.方法可做爲對象賦值給其餘變量。方法可做爲參數傳遞給其餘方法。

Function func=printHello;

func();

void printHello(){

    print(「hello」);

}

17.匿名方法:

var func=(str){

    print(「hi-$str」);

};

fun(‘abc’);

((){

    print(「test」);

})();

這種寫法方法會自動執行。

匿名方法:

a() {

    return (){

        print(‘abc’);

    };

}

18.閉包是一個方法(對象)。閉包定義在其餘方法內部的方法。閉包可以訪問外部方法內的局部變量,並持有其狀態。

a(){

    int count=0;

    printCount(){

    print(count++);

    }

    return printCount;//返回的是一個方法

}

var func=a();

func();

func();

func();

相關文章
相關標籤/搜索