2017年Google就將Kotlin語言作爲安卓開發的一級編程語言
作爲一名Android開發者今日才初識Kotlin,略顯慚愧.... /汗顏
VS
Kotlin是什麼呢?
Kotlin 是一個用於現代多平臺應用的靜態編程語言
Kotlin可以編譯成Java字節碼,也可以編譯成JavaScript,方便在沒有JVM的設備上運行。
Kotlin相比於Java 又有什麼優勢呢?
Kotlin比Java更安全,能夠靜態檢測常見的陷阱。如:引用空指針
Kotlin比Java更簡潔,通過支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等實現。
而且最主要的是 Kotlin實現了100% 和Java的兼容,所以日常完全可以滿足Kotlin和Java混合開發的需求,這也給如小編這樣的初學者以緩衝期。
不過相信通過系統的Kotlin學習,你也會喜歡上它優雅的語言特點。
一.Kotlin基礎語法篇
初窺Kotlin發現它與Js的語法比較像哈....
1. 常量和變量以及常用關係
var 變量
val 常量
Kotlin句末不需要打分號
Kotlin的非null值判斷機制:
- Kotlin有兩種類型:一個是非空引用類型,一個是可空引用類型。
- 對於可空引用,如果希望調用它的成員變量或者成員函數,直接調用會出現編譯錯誤,有三種方法可以調用:
a 在調用前,需要先檢查,因爲可能爲null
b 使用b?.length的形式調用,如果b爲null,返回null,否則返回b.length
c 使用b!!.length()的形式調用,如果b爲null,拋出空指針異常,否則返回b.length。val result = if (b != null) b.length else -1 b?.length val result = b!!.length
關於 ? 和 !! 在日常中有很多地方應用,暫且不表!不過通過對 ? 的應用,幾乎可以避免 Java 中的
NullPointerException
2.方法和基本數據
Kotlin中用 fun 來定義方法:
//無參
fun 方法名(參數值:參數類型){
方法體}
//有參數
fun 方法名(參數值:參數類型) : 返回值類型{
方法體}
fun onCreate(savedInstanceState: Bundle?) {
方法體}
fun add(x: Int, y: Int) : Int {
return x + y}
3. 基本數據類型
相對於於Java中的8種基本類型,Kotlin中提供了6種基本數據類型來滿足日常開發需求。
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8
字符類型(單獨的一種類型) Char,eg :val i: Int = b 這樣寫是錯誤的,java中這樣寫是正確的;
布爾 Boolean
數組 Array
字符串 String
Kotlin多加了一個支持三個引號的框起來的字符串,支持多行字符串
Kotlin目前可以支持數字下劃線,如 val a:Int=2_520
4.Kotlin中的控制語句
4.1 for語句
kotlin:
for (i in 0..9) {
}
//遍歷集合
var list = ArrayList<String>()
for (i in list.indices){
var s = list[i]
}
Java:
for (int i = 0; i < 9; i++) {
}
//遍歷集合
List<String> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
}
4.2 選擇語句
Kotlin:
var a = 0
var b = "模樣"
when(a){
0 -> b = "哭" //簡單的處理
1 -> b = "笑"
2 -> b = "皺眉"
3 -> { //複雜的處理
a ++
b = "眨眼"
}
}
Java:
int a = 0;
String b = "模樣";
switch(a){
case 0:
b ="哭";
break;
case 1:
b ="笑";
break;
case 2:
b ="皺眉";
break;
case 3:
a++;
b ="眨眼";
break;
}
4.3 While語句
Kotlin 中的 while 循環語句 和 Java 中的基本相同!
4.4 區間表達式
for (i in 1..4) print(i) // 輸出“1234” 都是閉區間
也可以使用 遞增行數 until 範圍[n,m) 左臂右開區間
// 循環5次,步長爲1的遞增
for (i in 0 until 5){ // for(i=0;i<5;i++)
print("i => $i \t")
}
對比以上2種,意思相同,區間不同
for (i in 4..1) print(i) // 什麼都不輸出 相當於數學中的 >=4 且<=0
也可以使用downTo 範圍[ n,m]
for (i in 5 downTo 0){ // for(i=5;i<0;i--) 輸出 5 4 3 2 1 0
print("$i")
}
步長關鍵字 step:
for (i in 10 until 16 step 2){ // 10 12 14
print(" $i")
}
在文章的最後 親愛的同學 當你還在猶豫不決 不妨... : 谷歌大牛說:爲什麼 Kotlin 比你們用的那些垃圾語言都好