命名規(guī)范
學(xué)習(xí)基礎(chǔ)之前首先聲明下命名規(guī)范,這樣有利于別人閱讀你的代碼。
1.使用駝峰法命名(并避免命名含有下劃線)
2.類名以大寫(xiě)字母開(kāi)頭
3.方法和屬性以小寫(xiě)字母開(kāi)頭
4.使用 4 個(gè)空格縮進(jìn)
基本類型
我們回顧下Java的基本類型并與之做個(gè)對(duì)比,java中有基本數(shù)據(jù)類型和引用類型,在kotlin中所有的東西都可以看成對(duì)象,可以理解為java中的引用類型,這就意味著在kotlin中的基本類型是可以調(diào)用函數(shù)和屬性的。下面具體理解一下kotlin中的基本類型:數(shù)字,字符,布爾,數(shù)組
數(shù)字
首先聲明一點(diǎn),在kotlin中是不會(huì)像java一樣有自動(dòng)類型轉(zhuǎn)換的。主要類型有:
Double ? ?64bit
Float? ? ? ? 32bit
Long? ? ? ? 64bit
Int? ? ? ? ? ? 32bit
Short? ? ? ? 16bit
Byte? ? ? ? ? 8bit
回憶類名以大寫(xiě)字母開(kāi)頭,這里的數(shù)字類型都是以對(duì)象的形式存在的。既然不能自動(dòng)轉(zhuǎn)換,那在kotlin中是如何轉(zhuǎn)換呢?下面舉例:
例1: 整型值轉(zhuǎn)Double
val i: Int = 7
val d: Double = i.toDouble()
例2:字符轉(zhuǎn)Int
val i: Char='b'
val d: Int= i.toInt()
在聲明數(shù)字類型的時(shí)候用法跟java差不多,比如Long 類型用大寫(xiě)L標(biāo)記:123L,F(xiàn)loat 用f或者F標(biāo)記:123.5f?
在實(shí)際聲明數(shù)字變量中是可以不聲明類型的,這點(diǎn)編譯器會(huì)自己去推斷出具體的類型,如下:
val i = 2 //Int 類型
val b = 3L // Long
val c = 5.2 // Double
字符
字符字面值用單引號(hào)括起來(lái):'1'。 特殊字符可以用反斜杠轉(zhuǎn)義。 支持這幾個(gè)轉(zhuǎn)義序列:\t、\b、\n、\r、\'、\"、\\和\$。 編碼其他字符要用 Unicode 轉(zhuǎn)義序列語(yǔ)法:'\uFF00'。
例如:
val a = '1'
val b = 2.toChar()
布爾
布爾用Boolean類型表示,和java一樣有兩個(gè)值:true和false。
同樣可以 用 && ?、||、 ! ?運(yùn)算。
數(shù)組
數(shù)組在 Kotlin 中使用Array類來(lái)表示,它定義了get和set函數(shù)(按照運(yùn)算符重載約定這會(huì)轉(zhuǎn)變?yōu)閇])和size屬性,可以使用庫(kù)函數(shù)arrayOf()來(lái)創(chuàng)建一個(gè)數(shù)組并傳遞元素值給它,這樣arrayOf(1, 2, 3)創(chuàng)建了 array [1, 2, 3]。 或者,庫(kù)函數(shù)arrayOfNulls()可以用于創(chuàng)建一個(gè)指定大小、元素都為空的數(shù)組。
例如:
val a = arrayOf("Hello","world")
var nullArray: Array<String?>?= arrayOfNulls(2) // a = [null, null]
val ?squares = Array?( 10 , { i -> (i+1)*(i+1) } )// squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
看到第三個(gè)表達(dá)式有點(diǎn)蒙圈了,Lambda 也不會(huì)呀,仔細(xì)比對(duì)了一下,10是數(shù)組大小,i是數(shù)組索引值:
當(dāng)?shù)扔?時(shí),1*1=1
等于1時(shí) 2*2=4 ?
等于2時(shí) 3*3=9
明白了吧= =,還有kotlin的函數(shù) 是可以傳函數(shù)作為參數(shù)的,簡(jiǎn)稱高階函數(shù),前面說(shuō)了kotlin中任何東西都可以看作是對(duì)象,傳個(gè)函數(shù)又有啥奇怪的= =,以后再細(xì)說(shuō)高階函數(shù),保證你用了之后就再也不想用java了
Kotlin 也有無(wú)裝箱開(kāi)銷的專門(mén)的類來(lái)表示原生類型數(shù)組:ByteArray、ShortArray、IntArray等等。這些類和Array并沒(méi)有繼承關(guān)系,但是它們有同樣的方法屬性集。它們也都有相應(yīng)的工廠方法:
val ?x : ?IntArray = intArrayOf(1,2,3)
x[0] = x[1] + x[2]
更有趣的是,字符串可以直接像數(shù)組一樣訪問(wèn):
val str = 'abcdefg'
val s = str[2] // 結(jié)果等于 'c'
//還可以直接遍歷
for ( a in str) {
? ? ? ? print(a)?
}
總結(jié)
本次學(xué)習(xí)的是kotlin中的基本類型,和一些常見(jiàn)的用法,內(nèi)容簡(jiǎn)陋似蒼蠅肉,想要學(xué)更多推薦官網(wǎng)學(xué)習(xí):官網(wǎng)地址 進(jìn)入下一章節(jié)