閑話Dart精髓語法2--集合篇

閑話Dart精髓語法1--基本篇 - 簡書

Dart Logo

第二波我們來聊一聊集合, 集合就是我們通俗的collection. 這個大類在java和kotlin里是非常常用的. 我們大部分的時間都是構(gòu)建與集合相關(guān)的object來做邏輯. 當然, 自從有了extension和functional programming, 我們對集合這種Iterable的數(shù)據(jù)類型的操作變換便脫離了for循環(huán), 飛了起來.?

額, 跑題了. 回到今天的主人公--Dart. LOL.


1. Lists:

? ? a. Dart沒有所謂的array. 這樣說貌似不是很恰當. 應該說, Dart的array就是list. 這點和我們平常熟知的kotlin不太一樣, 我們通常有array和list, 然后會提供toList()或是toArray()的函數(shù)供我們變換. Dart并沒有這樣做. 只留給我們list, 其實這已經(jīng)夠用了. 我個人覺得Dart不是很在乎數(shù)據(jù)類型上的消耗.

? ? b.?list[1] 這種用角標來取元素的寫法, 在script型和kotlin為代表的現(xiàn)代語言中已經(jīng)用的蠻多了. 這里記錄下這種用法. 具體實現(xiàn)可能不太一樣, 像kotlin是用extension來做的. Dart的實現(xiàn)我們要去core里來看. 這里我們就不深度挖掘了.

? ? c. 當然我們可以用const, 來創(chuàng)建一個compile-time的list. 這點有點像kotlin的mutableList, 其實就是如果我們已知自己的list元素, 其實可以做一個不變的list, 這樣會節(jié)省性能. 當然這樣寫的潛在影響就是, 我們所創(chuàng)建的const list不可變換. 舉例如下:


? ? d. Dart是很喜歡我們傳lambda的. 像這個sort: fruits.sort((a, b) => a.compareTo(b));


2. Maps:

? ? a. 對于map的定義, 簡單寫起來用:區(qū)分開key和value.



//PS: 這里是不是看著這種狂換行的格式感覺無比蛋疼, 沒事, 多去看看flutter的demo代碼, 就習慣了. 個人感覺, Dart這種格式是為了UI表述方便. 畢竟Flutter沒有xml和storyboard. 這樣的狂換行其實將widget(以前的view)的層級分得很清晰.

好了, 今天就到這里了, 剩下的等我們細看Generics和Collections, 如果有很值得記下來的我會mark的.?

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容