天天看點

Dart基礎

dart變量與類型(官方文檔)

var,靜态類型,null

var

使用var定義變量,類型由編譯器推斷

靜态類型

用靜态類型定義變量,編輯器能夠使用這些靜态類型,提供編譯警告

null

未初始化的變量的值是null

所有皆對象

dart所有類型都是對象類型

num、bool、string、list、map

num類的文檔說明

math api文檔說明

使用${express}

用+

用三個"

list數組,map字典

容器裡的元素需要有類型的,dart判斷好類型後,後續像容器加入的元素要滿足該類型,否則編譯失敗

初始化時添加限制

可以拿到runtimetype

sth.runtimetype為變量運作時的類型

const final

const是指編譯期間确定的值,final是可以在運作時确定的,确定後不能變

if-else、for、while、do-while、break/continue、switch-case、assert

dart函數、類和運算符

可以作為參數傳遞,支援箭頭函數,可命名參數和可選參數(完成重載的功能)
可選命名參數:加上{},可忽略參數,加上[]

意思是,少傳了這兩個參數,不會報錯。

類似java的聲明,類似c++的初始化清單,構造函數重定向(對比其和javascript的不同),類的複用

初始化清單

在構造函數後,用一個: 後面對變量進行操作

重定向構造函數

寫一個函數,帶有構造的作用,這個函數的初始化清單調用原構造函數

其他類變量在本類中複用,繼承、接口和混入(mixin)

繼承(extends)

子類由父類派生,會自動擷取父類的成員變量和方法實作,子類可以根據需要覆寫構造函數及父類方法;

接口實作(implements)

子類擷取到的僅僅是接口的成員變量符号和方法符号,需要重新實作成員變量,以及方法的聲明和初始化,否則編譯器會報錯

混入(with)

?. ??= ?? 三種運算符

?. 運算符

<code>p?.printinfo()</code> ,表示 p 為 null 的時候跳過,避免抛出異常。

??= 運算符

預設值兜底,如果 a 為 null,則給 a 指派 value,否則跳過. <code>a??=value</code>

?? 運算符

如果 a 不為 null,傳回 a 的值,否則傳回 b,<code>a ?? b</code>

operator關鍵字

官方文檔位址

繼續閱讀