大家好停蕉,歡迎加入小李君的Kotlin學(xué)習(xí)之旅块茁。今天是小李君學(xué)習(xí)Kotlin的第四天唇兑。
來(lái)段學(xué)習(xí)小結(jié)
經(jīng)過(guò)前三天的getting started式的快速學(xué)習(xí)厦坛,小李君從無(wú)到有地認(rèn)識(shí)Kotlin是個(gè)什么東西(JVM語(yǔ)言),能干什么(通吃Android睬棚,SpringBoot第煮,Javascript,IOS)抑党,掌握基本語(yǔ)法糖(能寫變量常量if-else-when判斷for-while循環(huán)fun函數(shù)class類array數(shù)組)包警。也就是說(shuō),小李君目前已經(jīng)大概看懂80%的kotlin代碼了底靠,還有最后20%需要通過(guò)研習(xí)官方文檔各個(gè)專題來(lái)深度學(xué)習(xí)(不是deep learning)害晦。
插播人生套路
學(xué)習(xí)新語(yǔ)言必經(jīng)這幾個(gè)過(guò)程:
- getting started,快速入門暑中,快速熟悉掌握新語(yǔ)言環(huán)境壹瘟,做到能看懂,也能在別人的代碼上改改鳄逾。
- reference稻轨,參考手冊(cè),深入每個(gè)專題雕凹,反復(fù)看反復(fù)練殴俱,把基礎(chǔ)打牢固,同時(shí)能獨(dú)立完成一個(gè)功能完整的應(yīng)用程序请琳,無(wú)論是后端應(yīng)用還是移動(dòng)客戶端應(yīng)用粱挡。
- library source code,語(yǔ)言本身的內(nèi)核源代碼俄精,了解語(yǔ)言環(huán)境本身能提供什么工具給開發(fā)者使用询筏,全面認(rèn)識(shí)語(yǔ)言內(nèi)核源代碼的組織架構(gòu)(包的結(jié)構(gòu)劃分,類的組織方式竖慧,方法的設(shè)計(jì)規(guī)律)嫌套。
- compile environment逆屡,(暫時(shí)不說(shuō)了,這是連小李君都還沒(méi)達(dá)到的高度踱讨,跪求大神帶著飛)魏蔗。
- 寫寫學(xué)習(xí)總結(jié),忘記這門語(yǔ)言痹筛。
開始進(jìn)入正題
Kotlin的基本類型與Java & Javascript差不多莺治,同時(shí)也借鑒了其他語(yǔ)言的優(yōu)點(diǎn),大概能夠劃分為:Number帚稠,Character谣旁,Boolean,Array滋早,String榄审。
Number - 數(shù)字類型
Number作為一個(gè)概念代表所有數(shù)字的表示(概念上like javascript),但在具體類型實(shí)現(xiàn)中杆麸,非常接近Java的類型搁进。
Type | Bit width | Range |
---|---|---|
Double | 64 | 2^64 |
Float | 32 | 2^32 |
Long | 64 | 2^64 |
Int | 32 | 2^32 |
Short | 16 | 2^16 |
Byte | 8 | 2^8 == 256 |
值得一提的是Kotlin支持Java7的一個(gè)重要特性:數(shù)字下劃線分割。
- 299312 == 299_312
關(guān)于Number的其他內(nèi)容昔头,其實(shí)也沒(méi)啥特別饼问,就是===這個(gè)很直;Long是Long减细,Int是Int匆瓜,一點(diǎn)也不含糊。
Character - 字符類型
字符也沒(méi)啥內(nèi)容未蝌,就是跟===一樣很直,Character是Character茧妒,Int是Int萧吠,兩者不能自動(dòng)轉(zhuǎn)換,也不相等桐筏。以后用到字符類型的機(jī)會(huì)其實(shí)還蠻少的纸型。
Boolean 布爾類型
true false,沒(méi)了梅忌。
Array 數(shù)組類型
Kotlin的數(shù)組類型可謂取其精華去其糟粕狰腌。
全局函數(shù) arrayof( 5, 6, 7 ) 創(chuàng)建了一個(gè)數(shù)組[ 5, 6, 7 ];
工廠方法 Array( 3, { i -> i + i } ) 創(chuàng)建了一個(gè)數(shù)組 [ 0, 2, 4 ]牧氮;
拋棄了 Int [ ] 這些寫法琼腔,直接用 Array<Int> 或 IntArray;
訪問(wèn)數(shù)組元素還是可以直接 arr [ 0 ] 這樣子踱葛。
String 字符串
字符串的亮點(diǎn)在于 """ 這三個(gè)雙引號(hào)和模板技術(shù)丹莲。
其中光坝,三個(gè)雙引號(hào)來(lái)自于Python語(yǔ)言特性,能夠多行顯示字符串甥材,直接編寫轉(zhuǎn)義字符盯另,并且還能保留換行格式。
還有洲赵,模板技術(shù)來(lái)自于Linux Bash Shell語(yǔ)言特性鸳惯,參數(shù)展開和表達(dá)式展開,老司機(jī)都懂的叠萍。