閑話Dart精髓語法4--邏輯操作篇

閑話Dart精髓語法3--函數(shù)篇 - 簡書

Dart Logo

好了, 小伙伴們, 今天讓我們來瞜一眼Dart的邏輯操作部分. 和java與kotlin相比, 這部分其實沒什么很大的區(qū)別. 我們這里只是過一下.?

好了, 分隔線后我們進入正題.?


我們可以用以下的表達式來控制Dart中的邏輯走向, 當然也包括try catch和throw. 我們一個個來看一下注意事項.

控制語句

1. If and Else

a. Dart支持如下列的If Else語句. 基本用法和java一樣.?

Dart If Else

b. 這里要注意一點. Dart里的if并不像kotlin一樣, 不是expression, 不可以有return值. 所以以下的kotlin寫法在Dart中目前是不行的.

kotlin If Else

c. 這里再次強調, 重要的事情戳三遍!!!??和JavaScript不一樣. 除了true以外, Dart把其他所有的值都當做false.

2. For loops:

這里mark下Dart里的三種for循環(huán)寫法.

a. 普通for循環(huán).?重要的事情戳三遍!!! Dart不能像kotlin一樣用for range.?

普通for循環(huán)

b.?Iterable的可以用forEach. 沒啥可說的. 基本上在kotlin里list都這么寫加個lambda. 這里要注意, 下列example里的candidate聲明不可省去. kotlin里面Iterable的聲明省去, 會自動用it代替. Dart要求我們必須定義.?

forEach

c. 高級for循環(huán), 沒啥可說的. 個人覺得用forEach更多.

for in

3. While, do-while:

a. 這個真沒啥可說的, 一樣一樣的.?

b. while先判斷condition再循環(huán).?

c. do-while先循環(huán)一次, 后做condition判斷.

while

4. Break, continue:

break跳出循環(huán)體, continue跳過此次循環(huán).

break

5. Switch:

a. Switch支持int, string, enum.?

b. 用于switch比較的objects必須同一類型, 而且不能復寫==.

c. 如果非空case的話, 必須要以break, continue, return, throw中的一種來結束. 舉例如下.

非空case缺少break報錯
空case fall through

6. Assert:

a. 開發(fā)中我們可以用assert來中斷正常的執(zhí)行.

Assert

b.?Assert 語句在production code中不會有任何作用. 就是給我們在debug mode中提供方便的. 注意, Flutter中debug mode是自動打開的. 因為我們通常是用flutter run. 這時, Dart的assert是enable的. 如果我們要release的話, 可以使用flutter run --release來使用release mode. 具體可參考:?Debugging Flutter Apps - Flutter

c. 我們可以給assert附上message.?

attach message to assert

7. Exceptions:

a. 我們可以扔exception來說這里有個error.?

b. Dart允許我們扔隨意的objects. 但是Dart建議我們扔出去的還是要繼承Error或是Exception. 個人感覺非常模棱兩可. ??

throw arbitrary

c. 因為扔個exception是種表達式, 我們可以在=>處扔exception. (或是任意其他表達式) 這里我們在Flutter中真正編程時, 還是蠻有用的. 可以定義一個function來扔某種異常. 方便復寫.

throw exceptions in => statements

d. rethrow是再次扔. (一次扔不夠的時候??)

rethrow

e. 這里要重點mark. on表達我們觀測的具體某一種exception. catch表示我們想抓. on和catch可以一起使用.

on和catch

f. 在catch時, e代表我們的exception, s代表Stacktrace.

e和s

g. finally用于不管扔不扔exception, 一些語句都被執(zhí)行.

finally

好了, 今天就到這里了. 這一波中的assert和exception部分我們真的還是要細扣一下doc的.

下一篇我們要搞一下Classes這個重頭戲.

歐了, 謝謝觀賞, 大家加油!

閑話Dart精髓語法5--類與對象篇 - 簡書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市球恤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝶防,死亡現(xiàn)場離奇詭異撒犀,居然都是意外死亡,警方通過查閱死者的電腦和手機悼做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哗魂,“玉大人肛走,你說我怎么就攤上這事÷急穑” “怎么了朽色?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長组题。 經(jīng)常有香客問我葫男,道長,這世上最難降的妖魔是什么崔列? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任梢褐,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘盈咳。我一直安慰自己耿眉,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布鱼响。 她就那樣靜靜地躺著鸣剪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪热押。 梳的紋絲不亂的頭發(fā)上西傀,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音桶癣,去河邊找鬼拥褂。 笑死,一個胖子當著我的面吹牛牙寞,可吹牛的內容都是我干的饺鹃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼间雀,長吁一口氣:“原來是場噩夢啊……” “哼悔详!你這毒婦竟也來了?” 一聲冷哼從身側響起惹挟,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤茄螃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后连锯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體归苍,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年运怖,在試婚紗的時候發(fā)現(xiàn)自己被綠了拼弃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡摇展,死狀恐怖吻氧,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情咏连,我是刑警寧澤盯孙,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站祟滴,受9級特大地震影響镀梭,放射性物質發(fā)生泄漏。R本人自食惡果不足惜踱启,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧埠偿,春花似錦透罢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抖剿,卻和暖如春朽寞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斩郎。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工脑融, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缩宜。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓肘迎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锻煌。 傳聞我的和親對象是個殘疾皇子妓布,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容