Kotlin學(xué)歷之基礎(chǔ)

命名規(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è)值:truefalse

同樣可以 用 && ?、||、 ! ?運(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é)

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

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

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