亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Flutter開發第一步-Dart編程語言入門

雷宇 全棧工程師
難度入門
時長 3小時54分
學習人數
綜合評分9.50
53人評價 查看評價
9.5 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • 靜態成員

    使用static關鍵字來實現類級別的變量和函數

    靜態成員不能訪問非靜態成員,非靜態成員可以訪問靜態成員

    類中的常量需要使用static const聲明

    訪問靜態成員

    Page.scrollDown();


    查看全部
    1 采集 收起 來源:靜態成員

    2020-04-14

  • 初始化列表

    跟語法糖一樣是在構造方法之前運行

    使用逗號分隔初始化表達式

    初始化列表用于設置final變量的值

    class?Person?{
    ??String?name;
    ??int?age;
    ??final?String?gender;
    
    ??Person(this.name,?this.age,?this.gender);
    
    ??Person.withMap?(Map?map)?:?gender?=?map["gender"]{
    ????this.name?=?map["name"];
    ????this.age?=?map["age"];
    ??}
    }
    ?Person.withMap?(Map?map)?:this.name?=?map["name"],
    ????????this.age?=?map["age"],gender?=?map["gender"]{
    ??}
    }


    查看全部
  • 工廠構造方法

    1、工廠構造方法類似于設計模式中工廠模式

    2、在構造方法前添加關鍵字factory實現一個工廠構造方法

    3、在工廠構造方法中可返回對象


    class?Logger?{
    ??final?String?name;
    ??static?final?Map<String,?Logger>?_cache?=?<String,?Logger>{};
    ??factory?Logger(String?name)?{
    ????if?(_cache.containsKey(name))?{
    ??????return?_cache[name];
    ????}?else?{
    ??????final?logger?=?Logger._internal(name);
    ??????_cache[name]?=?logger;
    ??????return?logger;
    ????}
    ??}
    ??Logger._internal(this.name);
    ??void?log(String?msg)?{
    ????print(msg);
    ??}
    
    }


    查看全部
    1 采集 收起 來源:工廠構造方法

    2020-04-14

  • 用const聲明對象,需要有常量構造方法

    1、如果類是不可變狀態,可以把對象定義為編譯時常量

    2、使用const聲明構造方法,并且所有變量都為final

    3、使用const聲明對象,可以省略


    class?Person?{
    ??final?String?name;
    ??final?int?age;
    ??final?String?gender;
    
    ??const?Person?(this.name,?this.age,?this.gender);
    
    
    
    ??void?work()?{
    ????print("Name?is?$name,?Age?is?$age,?He?is?workding");
    ??}
    
    }
    const?person?=??const?Person("Tom",?20,?"M");


    查看全部
    1 采集 收起 來源:常量構造方法

    2020-04-14

  • Dart構造方法

    如果沒有自定義構造方法,則會有個默認構造方法

    如果存在自定義構造方法,則默認構造方法無效

    構造方法不能重載

    Dart語法糖

    final?String?gender;
    
    Person?(this.name,?this.age,?this.gender);

    這種寫法是先給屬性賦值再執行構造方法,所以可以給final屬性賦值是沒問題的

    想要在Dart使用多個構造方法,則需要命名構造方法

    1、使用類名.方法的形式實現

    Person.withAge(this.age,?this.gender);
    Person.sad(this.gender);


    查看全部
    1 采集 收起 來源:構造方法

    2020-04-14

  • 計算屬性:

    計算屬性的值是通過計算而來,本身不存儲值

    計算屬性賦值,其實是通過計算轉換到其它實例變量

    void?main(List?args)?{
    ??var?rectangle?=?Rectangle();
    ??rectangle.height?=?20;
    ??rectangle.width?=?10;
    ??print(rectangle.area);
    ??rectangle.area?=?200;
    ??print(rectangle.width);
    }
    
    class?Rectangle?{
    ??num?width,?height;
    ??num?get?area?=>?width*height;
    ??????set?area(value)?{
    ????????width?=?value/20;
    ??????}
    
    }


    查看全部
    1 采集 收起 來源:計算屬性

    2020-04-14

  • 對象

    聲明new關鍵字可以省略

    類中屬性默認生成getter和setter方法

    使用final聲明的屬性只有getter方法

    屬性和方法通過 . 訪問?

    方法不能被重載

    2、類及成員可見性

    Dart中的可見性以library(庫)為單位

    默認情況下,每一個Dart文件就是一個庫

    使用下劃線_表示庫的私有性也可以是屬性和方法, 其它庫不能再導入使用,只能在當前庫使用

    使用import導入庫

    查看全部
    1 采集 收起 來源:類與對象

    2020-04-14

  • 閉包:

    閉包是一個方法(對象),閉包定義在其它方法內部,閉包能夠訪問外部方法內的局部變量,并持有其狀態

    void?main(List?args)?{
    ??var?func?=?a();
    ??func();
    ??func();
    }
    
    a()?{
    ??int?count?=?0;
    ??return?(){
    ????print(count++);
    ??};
    
    }


    查看全部
    1 采集 收起 來源:閉包

    2020-04-14

  • 匿名方法

    (參數1,參數2) {

    ? ?方法體...

    return 返回值

    }

    匿名方法特性

    1、可賦值給變量,通過變量進行調用

    2、可在其它方法中直接調用或傳遞給其它方法

    匿名方法不可以直接定義在外部, 要定義在main()方法里

    void?main(List?args)?{
    
    ??var?func?=?()?{
    ????print("hello");
    ??};
    ??func();
    }

    2、

    void?main(List?args)?{
    
    ??var?list?=?["h",?"e",?"l",?"l",?"o"];
    ??print(listTimes(list,?(str)?{?return?str*3;}));
    }
    
    List?listTimes?(List?list,?String?f(str))?{
    ??for?(var?index?=?0;?index?<?list.length;?index?++)?{
    ????list[index]?=?f(list[index]);
    ??}
    ??return?list;
    }



    List?listTimes2?(List?list)?{
    ??var?func?=?(str)?{?return?str?*?3;};
    ??for?(var?index?=?0;?index?<?list.length;?index?++)?{
    ????list[index]?=?func(list[index]);
    ??}
    ??return?list;
    }


    查看全部
    1 采集 收起 來源:匿名方法

    2020-04-13

  • //Main程序入口
    void?main(List?args)?{
    var?list?=?["h",?"e",?"l",?"l",?"o"];
    print(listTimes(list,?(str)?=>?times(str)));
    }
    
    List?listTimes?(List?list,?String?f(str))?{
    ??for?(var?index?=?0;?index?<?list.length;?index?++)?{
    ????list[index]?=?f(list[index]);
    ??}
    ??return?list;
    }
    
    String?times(str)?{
    ??return?str*3;
    }
    
    2、
    //Main程序入口
    void?main(List?args)?{
    ??Function?p?=?printHello;
    ??p();
    
    ??var?list?=?[1,2,3];
    
    }
    
    printHello()?=>?print("hello");


    查看全部
    0 采集 收起 來源:方法對象

    2020-04-13

  • 設置默認參數值

    1、可使用 = 在可選參數后添加指定默認值

    查看全部
    1 采集 收起 來源:默認參數值

    2020-04-13

  • break 終止當前循環體,若被包含不影響父循環執行

    continue 跳過符合條件的一次循環

    查看全部
    1 采集 收起 來源:break和continue

    2020-04-13

  • Map創建

    1、創建Map:var lan = {'key' : 'value','key' : 'value','key' : 'value'...}

    2、創建不可變Map:?var lan = const {'key' : 'value','key' : 'value','key' : 'value'...}

    3、構造創建:var lan = new Map();

    查看全部
    1 采集 收起 來源:Map

    2020-04-13

  • List(數組)創建

    1、創建List : var list = [1,2,3];

    2、創建不可變的List:var list = const[1,2,34]

    3、構造創建:var list = new List();

    常用方法

    insert()插入, 原有數據往后順延

    indexOf() 查字符所在索引并返回, 沒有找到返回-1

    sublist()截取

    查看全部
    1 采集 收起 來源:列表List

    2020-04-13

  • 布爾型

    1、使用bool表示?

    2、只有true、false兩個值

    查看全部
    0 采集 收起 來源:布爾型

    2020-04-13

舉報

0/150
提交
取消
課程須知
本課程主要介紹Dart基礎知識,如果有其它編程語言經驗的同學,學習起來會事半功倍。對有經驗的同學,入門課程會比較輕松,不過也要多加練習哦~,學習完本課程后,大家可以自行加深Dart學習,向面向對象發起一波沖刺~(https://gitee.com/LeiYu-Io)
老師告訴你能學到什么?
1、Dart的應用場景有哪些 2、Dart開發環境如何配置 3、Dart中常用的數據類型 4、Dart中的運算符及控制流 5、Dart中的方法以及閉包等

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!