第一篇:Kotlin之基礎(chǔ)類型

上篇:Kotlin之介紹篇

下篇:第二篇:Kotlin之運(yùn)算符和表達(dá)式

1.分號(hào)

? ? 熟悉java開發(fā)的朋友都知道每寫完一行代碼最后要帶一個(gè)分號(hào)結(jié)尾。但是kotlin已經(jīng)不需要啦

如: setContentView(R.layout.activity_main) ? ? initToolbar()都不需要帶分號(hào)了。

2.變量聲明和方法

java: ?public void main() void關(guān)鍵字

kotlin: public fun main() fun作為方法的關(guān)鍵字

//聲明變量和指定類型

? ? a和b表示聲明變量的名字,Int表示聲明變量的類型,中間用:表示。

? ? 細(xì)心的朋友一定會(huì)發(fā)現(xiàn)一個(gè)是var, 一個(gè)是val, 它們的區(qū)別是什么呢。

? ? var其實(shí)就是跟正常java賦值變量一樣可以進(jìn)行g(shù)et, set方法。但是val其實(shí)就是java加一個(gè)關(guān)鍵字final只有g(shù)et方法不能set方法。 也就是說a變量可以重新賦值,但是b因?yàn)轭愃朴趂inal所以不能重新賦值。

? ? 當(dāng)然你可以省略變量的類型,因?yàn)閗otlin會(huì)通過你賦值的類型去自動(dòng)識(shí)別。

? ? Kotlin支持的基本類型和java一樣,如下。但是有一點(diǎn)切記Kotlin進(jìn)行對(duì)變量或者對(duì)象初始化的時(shí)候一定要賦上初始值。?

? ? ${}的用法的介紹,在字符串里調(diào)用b

輸出的結(jié)果是Dog

3.null安全

? ? null可以說是Kotlin語言對(duì)java的重大改進(jìn)之一,這樣可以便面了Java編程時(shí)令人恐懼的NullPointerException。

例子如下

? ? 首先因?yàn)閟tr里沒有數(shù)字所以執(zhí)行到numOne會(huì)報(bào)錯(cuò), 因?yàn)镵otlin支持2種類型,一種是非空類型,另一種是可空類型??煽疹愋托枰獛в校勘硎痉?hào),因?yàn)閚umOne沒有帶有?所以它屬于非空類型,又由于str帶有字符串所以返回的會(huì)是null,所以再行在執(zhí)行numOne的時(shí)候會(huì)報(bào)錯(cuò)。numTwo 和numThree是可空類型,numTwo把類型省略掉了Kotlin會(huì)跟你賦予的值來自動(dòng)識(shí)別所以numTwo和numThree是一樣的。numFour因?yàn)檗D(zhuǎn)成的是int或者是null,但是numFour接受是非null類型,所以在編譯的時(shí)候回報(bào)錯(cuò)。

在定義一個(gè)實(shí)體類Dog, 并且設(shè)置可null類型,在調(diào)用的時(shí)候一定需要帶有安全調(diào)用否者會(huì)報(bào)錯(cuò)。


此外,安全調(diào)用還可以與let全局函數(shù)結(jié)合使用,

注意:調(diào)用某對(duì)象的let函數(shù),則該對(duì)象為函數(shù)的參數(shù)。在函數(shù)塊內(nèi)可以通過?it?指代該對(duì)象。返回值為函數(shù)塊的最后一行或指定return表達(dá)式。因?yàn)樽詈笠恍袨榉祷刂担悦總€(gè)arr結(jié)果打印都是3。kotlin想這樣的以最后一行為返回值的還有很多如run ? with等都是這樣的。其他的語法糖會(huì)在接下來的文章里逐一介紹。

? ? for和arrayOf接下來會(huì)介紹,不過相信有編程經(jīng)驗(yàn)的同學(xué)應(yīng)該可以看懂的,arrayOf是數(shù)組, for遍歷數(shù)組let是kotlin其中的一個(gè)語法糖,也就是說item如果不為null的話會(huì)調(diào)用let里邊的函數(shù), it是關(guān)鍵字代表item的值。是不是感覺很爽,如果要是java還得加上判斷等,用kotlin直接用let的語法糖就可以了。當(dāng)然了有的時(shí)候需要的類型是非null的類型,如何將可null的類型傳進(jìn)去呢。這個(gè)時(shí)候用到了Kotlin的強(qiáng)制調(diào)用 !!帶有兩個(gè)嘆號(hào)的修飾符。下邊的例子也就是說無論item為不為null都會(huì)調(diào)用。但是這回引發(fā)“NPE”空指針異常,所以一定要慎用。(有一些調(diào)用android控件的方法的時(shí)候就需要傳入非空類型,所以具體的事情具體分析)

4.Kotlin字符串的用法

雖然Kotlin的string和Java的string并不是同一個(gè)類,但是這個(gè)2個(gè)類所提供的功能大致相似。實(shí)際上Kotlin的String類提供了更多的方法,如提供了一系列的toXxx()方法將字符串轉(zhuǎn)成數(shù)值,例子如下

val s1 = "2.34"

val d: Double = s1.toDouble()

我也就不一一介紹了,具體可以參考Koltin官方

對(duì)于有一定java經(jīng)驗(yàn)的開發(fā)者來說,前面的幾個(gè)章節(jié)過于簡(jiǎn)單了,所以我認(rèn)為大概瀏覽一遍即可。后續(xù)文章會(huì)盡快更新~

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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