Dart 的流程控制語句,其實跟常規的流程控制語句非常像,按照常規使用沒有任何問題,本文只列出其中比較有特點的內容,供大家參考。
- if 相關的 boolean
- for 循環相關
- fall-through 寫法
if 相關的 boolean
拿 JS 舉例,我們經常使用非 0 或 undefined 或 null 的值來判斷真,比如常用的:
if(array.length) console.log('數組非空');
但是 Dart 不同之處在於嚴格限定 if 語句只能判斷 boolean(這當然也包含 else if)。所以使用 Dart 中就不可使用上面的例子,只能使用 boolean 來做判斷:
for 循環相關
首先,請 JSer 們舉手歡呼,面試 Dart 再也不會問你 for 循環內部使用 var 相關的問題了,沒錯,Dart 的 var 是鎖定義域的,不用擔心變量提升(以及閉包的坑)等問題了。非 JSer 們請忽略這段話,繼續下面即可。
同樣還是 JSer 們,forEach 不帶迭代計數器了,就是沒有:
arr.forEach((item, index) => any...)
上面的 index 沒有了哦,注意下。
然後,for in 適合 List 和 Set 不適合 Map,而不是 ES6 中的 for in 更適合對象。for of 沒有。
fall-through
switch 的 case fall-through 寫法:
下篇:函數。
閱讀更多 前端紳士 的文章