1. 程式人生 > >初識Kotlin(一)——進階日記

初識Kotlin(一)——進階日記

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值判斷機制:

  1. Kotlin有兩種型別:一個是非空引用型別,一個是可空引用型別。
  2. 對於可空引用,如果希望呼叫它的成員變數或者成員函式,直接呼叫會出現編譯錯誤,有三種方法可以呼叫:
    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") 
}