互助資金盤網(wǎng)站開發(fā)杭州免費網(wǎng)站制作
一、關(guān)鍵字
class:用于定義一個新的類;
extends: 用于指定一個類繼承另一個類;
mixin: 用于將一個類的代碼片段添加到另一個類中,實現(xiàn)代碼復(fù)用;
abstract: 用于聲明一個抽象類或抽象方法,不能直接實例化;
implements: 用于實現(xiàn)一個接口,并繼承接口中定義的方法和屬性;
super: 用于在子類中調(diào)用父類的方法或?qū)傩?#xff1b;
const: 用于聲明一個不可變的變量或?qū)ο?#xff1b;
null: 表示空值或不存在的值;
final: 用于聲明一個常量或不可被重寫的屬性或方法;
abstract class: 聲明一個抽象類,不能直接實例化,但可以作為其他類的基類;
interface: 聲明一個接口,定義一組方法,但不帶實現(xiàn)。
二、修飾符
const: 用于修飾變量或?qū)ο?#xff0c;表示該變量或?qū)ο笫蔷幾g時常量,即其值在編譯時是已知的,并且不會被改變;
final: 用于修飾變量或方法,表示該變量或方法不能被重寫或修改;
late: 用于修飾變量,表示該變量是延遲初始化的,即在第一次使用之前不會進(jìn)行初始化;
override: 用于修飾方法,表示該方法重寫了父類中的方法;
external: 用于修飾方法或類,表示該方法或類的實現(xiàn)由其他代碼庫提供,不能被Flutter代碼訪問;
null: 用于修飾參數(shù),表示該參數(shù)可以為null;
required: 用于修飾參數(shù),表示該參數(shù)是必需的,調(diào)用函數(shù)時必須提供該參數(shù)。
三、可選參數(shù)
命名可選參數(shù):通過在參數(shù)名稱前面加上大括號“{}”來定義,在函數(shù)調(diào)用時,可以選擇性地傳入一個或多個參數(shù);
位置可選參數(shù):通過在參數(shù)名稱前面加上中括號“[]”來定義,在函數(shù)調(diào)用時,必須按照從左到右的順序傳入?yún)?shù),可以選擇性地跳過某些參數(shù);
可選參數(shù)必須是函數(shù)定義中最后一個參數(shù),因為在Flutter中不支持鏈?zhǔn)秸{(diào)用語法;
如果函數(shù)定義中既有命名可選參數(shù)又有位置可選參數(shù),那么位置可選參數(shù)必須放在命名可選參數(shù)之前。
四、異步編程
通??梢允褂肍uture、async/await和Streams(數(shù)據(jù)流)。
五、路由
Route:在Flutter中,Route表示一個屏幕或頁面的抽象;
當(dāng)你想在應(yīng)用中導(dǎo)航到一個新的頁面時,你實際上是創(chuàng)建了一個新的Route并將其推送到Navigator中;
Navigator:Navigator是一個負(fù)責(zé)管理Route的Widget;
它內(nèi)部維護(hù)了一個路由棧,這個棧結(jié)構(gòu)允許用戶在不同的頁面之間進(jìn)行切換;
當(dāng)你調(diào)用Navigator的push方法時,一個新的Route會被添加到棧頂,表示當(dāng)前顯示的頁面;相應(yīng)地,當(dāng)你調(diào)用pop方法時,棧頂?shù)腞oute會被移除,顯示前一個頁面。
六、Channel
通常,在原生與Flutter進(jìn)行混編時,兩端可以通過監(jiān)聽Channel接收傳遞來的消息,通過invokeMethod或sendEvent等方法來發(fā)送消息,這叫做Platform Channels機制;
Channel共有三類,分別是BasicMessageChannel(傳遞字符串和半結(jié)構(gòu)化信息)、MethodChannel(方法調(diào)用)和EventChannel(數(shù)據(jù)流通信);
Channel有三個重要的成員變量,分別是String類型的name,代表Channel的唯一標(biāo)識符;
BinaryMessenger類型的messager,代表消息的發(fā)送與接收工具,使用二進(jìn)制格式的數(shù)據(jù)進(jìn)行通信,BinaryMessenger會根據(jù)Channel的名稱找到對應(yīng)的Handler,并將消息交由其處理;
MessageCodec類型或MethodCodec類型的Codec,代表消息的編解碼器。