Throw
例用關鍵字 throw 也可以自行拋出例外、錯誤訊息,除了可以拋出 Dart 預設的例外、錯誤,我們也可以自行實作例外、錯誤
Finally
使用 try/catch 捕捉例外、錯誤,當例外、錯誤發生時,原本的流程就會被中斷,接者會從try移動到 catch 中。如果有些事情一定需要處理,這時候就要使用到finally,關鍵字 finally 可以接在 try/catch 的最後方,無論程序是正常執行或是異常,在 finally 裡面的程式碼一定會被呼叫
※try/catch/finally雖說這3個常常會一起出現,其實可以只使用其中2個,像是try/catch或是try/finally,這完全取自於當下發生的情況
Class
講到類別(class)一定會講到物件(object),其實他們算是一體兩面的東西,簡單來說:
類別算是一個藍圖、一個可參考的文件,他沒有實體的概念,是靜態的。
物件是具有實體概念,狀態會隨時改變,是動態的,但架構不會改變。
我覺得class中繼承這個功能非常的好用,不過要記得Dart和Java一樣一次只能繼承一個父親
Mixin
在Dart中還有一個神奇的機制,那就是Mixin,它能夠讓你的class使用其他class的功能,卻不用成為它的子類。而且能一次Mixin多個class,使用起來比繼承更有彈性。
※使用Mixin的關鍵字為with
Example:先定義一個Flutter class並讓它繼承People然後mixin Girl和Student這兩個新增的類別
非同步
我們先來認識一下跟Dart有關的3名詞Future、async、await
Future:Future可以把它看成是一個class,用來表示結果。Future只會對應一個結果,要么成功,要么失敗
Async:async是一個關鍵字,是用於區分function是同步或是非同步,使用方法是在定義function時加上async
Await:只能在非同步function中才能使用await,用來等待非同步工作的完成結果,使用await有助於程式碼的易讀性
今日總結
經過這3天的介紹大家有沒有對Dart有多一點的了解了呢,如果有想要更深入了解Dart的語法可以到Dart的官方網站去做更深入的練習,從明天開始我們會正式進入Flutter的世界,至於要做些什麼大家可以稍微期待一下喔!