在期待著郭霖先生的《第一行代碼(第三版)》時(shí),意識(shí)到自己需要補(bǔ)充必要的Kotlin知識(shí)?,F(xiàn)在寫(xiě)文章分享自己學(xué)習(xí)Kotlin基礎(chǔ)知識(shí)的過(guò)程,爭(zhēng)取拿到書(shū)之后能早日上手。
使用的軟件是IDEA 2019,文章中如有錯(cuò)誤或者欠缺的地方,歡迎批評(píng)指正。
參考《Kotlin從零到精通Android開(kāi)發(fā)》,歐陽(yáng)燊著,清華大學(xué)出版社2018年4月第一版,ISBN 978-7-302-49814-8。
1、Kotlin中的可變量和不可變量
Kotlin中可以聲明一些量,它們一旦創(chuàng)建就不能被修改,相當(dāng)于Java中的關(guān)鍵字final和C++中的const。要聲明一個(gè)這樣的量,Kotlin采用的關(guān)鍵字是val。
例如:

上述聲明的pi的值無(wú)法被修改,為只讀變量。
2 Kotlin的命名規(guī)則
Kotlin官方給出了Kotlin代碼的基本命名規(guī)則,Kotlin中文站上有對(duì)應(yīng)的中文版本,請(qǐng)務(wù)必遵循對(duì)應(yīng)的規(guī)則,這方便我們之后的代碼編寫(xiě),也增強(qiáng)了代碼的可讀性,便于和他人交流。
這里給出幾個(gè)常見(jiàn)的
3、容器
與Java類似,Kotlin也提供了三種基本的容器,分別是集合Set、隊(duì)列List和映射Map。每種容器可以分為只讀和可變兩種類型。
3.1 容器的基本操作
3.1.1 容器的公用方法和初始化
Set、List和Map三者都屬于容器,它們有一些公用的方法,列舉如下:
- isEmpty:判斷容器是否為空
- isNotEmpty:判斷容器是否非空
- clear:清空容器
-contains:判斷容器中是否包含指定元素 - iterator:獲取該容器的迭代器
- count:獲取該容器包含的元素的個(gè)數(shù),也可以通過(guò)size屬性獲得。
對(duì)于只讀容器,其包含的元素是固定的,在聲明的時(shí)候就要給出全部的元素進(jìn)行初始化,例如:
只讀List初始化
或者是:
可變集合
同樣的還有Map、MutableMap等。
注意,var與val區(qū)分了變量是否可以修改,對(duì)于容器來(lái)說(shuō),默認(rèn)是只讀容器,還需要通過(guò)變量類型來(lái)指定容器是否可變(是否可以進(jìn)行增、刪、改等操作)。因此,把只讀容器用val修飾、定義為例如List類型;把可變?nèi)萜饔胿ar修飾,定義為如MutableList類型,這種辦法是比較好的。
推薦采用上面這種方法來(lái)聲明一個(gè)容器。
3.3.2 容器的遍歷
有3中常用的方法用于容器的遍歷,這里介紹比較好的辦法:for循環(huán)遍歷
采用for循環(huán)遍歷操作可以這樣來(lái)寫(xiě):

可以看到,item代指了mutableSet里面的元素,循環(huán)體內(nèi)每次輸出item,實(shí)現(xiàn)了元素的遍歷。
另外兩種辦法是for-each遍歷和迭代器遍歷,比較推薦迭代器遍歷,可以找其他資源進(jìn)行學(xué)習(xí)。
3.2 容器的成員函數(shù)
結(jié)合相關(guān)書(shū)籍和IDEA的函數(shù)提示,可以清楚地看到每種容器的成員函數(shù),多運(yùn)用即可掌握。

