Kotlin名字由來
Kotlin 來源于一個島嶼的名字愁溜,全稱是 Kotlin Island,是英語「科特林島」之意。這個小島屬于俄羅斯凌净。
那么 Kotlin 編程語言為什么要選這個看似名不見經(jīng)傳的小島來作為自己的名字呢搁骑?
這就不得不說說 Kotlin 語言的開發(fā)者 JetBrains 公司了斧吐。
我們可以去 JetBrains 的官網(wǎng) https://www.jetbrains.com
JetBrains 是來自捷克的公司,公司總部位于捷克首都布拉格仲器,在俄羅斯的圣彼得堡和美國的波士頓都設(shè)有分公司煤率。
Kotlin是什么
知道了名字的由來和背后的老大們,我們進(jìn)一步來認(rèn)識一下 Kotlin 本人乏冀。
Kotlin 當(dāng)然是一門編程語言蝶糯,但它并不是「新出爐的面包」,從 2010 年就開始「烘焙」了辆沦。
說一點(diǎn) Kotlin 的歷史:
■ 2010 年 :JetBrains 著手開發(fā) Kotlin昼捍。
■ 2011 年 7 月 :JetBrains 公開宣布 Kotlin识虚。
■ 2012 年 2 月 :JetBrains 在 Apache 2 許可證下開源了 Kotlin 的源碼。目前 Kotlin 的官方源代碼在 Github 上 https://github.com/JetBrains/kotlin 妒茬。
■ 2016 年 2 月 :JetBrains 發(fā)布了 Kotlin 1.0 版担锤,算是比較穩(wěn)定的正式版。許諾之后一直會保持向后兼容乍钻。
■ 2017 年目前最新版本 :1.1.2(2017 年 6 月)肛循。相比 Kotlin 1.0 版本時,和 Kotlin 有關(guān)的代碼數(shù)目從 210 萬行飛升到 1000 多萬行银择。
Kotlin 是基于 JVM 的靜態(tài)類型編程語言多糠,而 Java 也是基于 JVM 的編程語言,那么 Kotlin 比 Java 究竟有哪些優(yōu)勢呢浩考?
Kotlin的優(yōu)勢
■ 多平臺開發(fā)的可能 :基于 JVM 的開發(fā)夹孔,Android 開發(fā),Web 開發(fā)析孽,Native(原生)開發(fā)搭伤。
■ 開源
■ 和 Java 100% 兼容 :Kotlin 調(diào)用 Java 已有的代碼或庫沒有問題。在一個項目中也可以同時用 Java 和 Kotlin 來編寫代碼绿淋。Android Studio 和 IntelliJ IDEA 都可以實現(xiàn)一鍵轉(zhuǎn)換 Java 代碼到 Kotlin闷畸。
■ 安全 : 大家聊得最多的肯定是可以輕松防止在 Java 中很常見NullPointerException(空指針異常)問題,做 Android 開發(fā)的一定深有體會,一般 app 奔潰吞滞,基本都是因為 NullPointerException佑菩,很多時候規(guī)避機(jī)制就是加一個 if 語句的判斷,很累贅裁赠。
■ Lambda 表達(dá)式殿漠。
■ 變量類型推斷。
■ Anko : Kotlin 的官方庫可以使 Android 應(yīng)用開發(fā)更快捷佩捞。
■ 優(yōu)秀工具的支持 :JetBrains 公司開發(fā)了那么多優(yōu)秀的工具绞幌,Kotlin 可以完全享用。
Kotlin語法特點(diǎn)
Kotlin本身的語法和Java有些不一樣一忱,相對Java而言莲蜘,主要的變化有這么幾條:
1.沒有“;”
在Kotlin語法里,代碼行不需要用“;”結(jié)尾帘营,什么都不寫就好
2.重要的“:”
在Java里票渠,“:”主要在運(yùn)算符里出現(xiàn)(for/switch/三元運(yùn)算符等)。
在Kotlin里芬迄,“:”的地位大大提升了问顷,它的用途非常廣泛,包括:
定義變量類型
var name:String="my name" //變量name為String類型
定義參數(shù)的類型
fun getData(id:Int){ //參數(shù)id為Int類型
}
3.沒有“new”
Kotlin實例化一個對象時不需要new關(guān)鍵字
var list=ArrayList()
4.變量、常量杜窄、類型推斷
用var定義變量
var name:String="my name"
用val定義常量(相當(dāng)于final)
val TAG:String="ClassName"
上面兩個例子用:String來定義了數(shù)據(jù)類型肠骆,這個是可以省略的,Kotlin支持類型推斷塞耕,
var name="my name"
val TAG="ClassName"
5.空指針安全
在Kotlin里蚀腿,可以用“?”表示可以為空,也可以用“!!”表示不可以為空扫外。
空指針安全并不是不需要處理空指針唯咬,你需要用“?”聲明某個變量是允許空指針的,例如
var num:Int?=null
聲明允許為空時畏浆,不能使用類型推斷,必須聲明其數(shù)據(jù)類型
Kotlin學(xué)習(xí)資源
1.官網(wǎng)
https://kotlinlang.org/官網(wǎng)
https://blog.jetbrains.com/kotlin/官方博客
https://github.com/JetBrains/kotlin Kotlin源碼
2. 中文社區(qū)