在深入 Kotlin Collection 之前,我們需要先對 Kotlin 語法有基本的認識。因此在這篇文章裡,要先迅速讓大家學會 Kotlin 的基礎語法。假如你已經接觸過 Kotlin,這篇的內容可以選擇性跳過;若你沒有寫過 Kotlin,則為了後續進階內容,請不要跳過喔!
在 Kotlin 裡宣告變數的語法分為 5 個部份:
var
、不可變變數則用 val
:
與前面的變數名稱做區隔=
符號將右邊的值指定給左邊的變數val myName: String = "Shengyou Fan"
var myPoint: Int = 100
Kotlin 是一個強型別(Strong Type)的程式語言,在宣告變數前要養成習慣先決定這個變數是可變(Mutable)或不可變(Immutable)以及這個變數的型別(Type)是什麼?而 IntelliJ IDEA 也會在編輯過程中時時幫你檢查。
Kotlin 常用的資料型別包括:
String
(字串)- 以 "
包住的文字Char
(字元)- 以 '
包住的字元Boolean
(布林)- 只能儲存 true
或是 false
Byte
Short
Int
Long
Float
Double
Array
(陣列)- 將多個有關係的資料放在一個容器裡,方便做資料處理。Array 及其他集合類型包括 List
、Set
、Map
就是這個系列文的主角。提醒一下,在 Kotlin 的世界裡,所有東西都是物件(Object),我們可以隨時呼叫該物件身上的屬性和方法。不過和 Java 不同,Kotlin 沒有 Primitive Types,通通都是大寫字開頭的 Reference Types,在 JVM 上執行時,Kotlin 編譯器會為了效能自動幫你轉換。
Kotlin 支援 Top-Level Function,要宣告一個函數很簡單,包括 6 個部份:
public
fun
做為函數宣告的開頭:
隔開{ }
包住所有函數要做的動作fun greeting(name: String = "Everyone"): String {
return "Hello, $name"
}
呼叫函數的方式很簡單,直接寫函數的名字加上 ()
即可,若有需要傳入參數的話就把參數準備好放在 ( )
之間。
greeting("Shengyou") // 畫面輸出 Hello, Shengyou
Kotlin 常用的流程控制有 if
、for
及 when
,寫法如下:
// if 表達式
if (condition) {
// ...
} else if (condition) {
// ...
} else {
// ...
}
// when 表達式
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x is neither 1 nor 2")
}
}
// for 迴圈
for (items: Int in item) {
// ...
}
運算子的部份也雷同,包括比較運算子和邏輯運算子:
<
- 小於<=
- 小於等於>
- 大於>=
- 大於等於==
- 等於!=
- 不等於===
- 兩者的記憶體位置相同!==
- 兩者的記憶體位置不同&&
- 且||
- 或!
- 非in
- 在某個 Range 間Kotlin 在流程控制的語法設計上跟其他語言差異不大,比較特別的應該是 when
。語法看起來跟其他程式語言裡的 swtich
很像,不過在語意上更清楚、語法上也更彈性,善加利用的話可以寫出表達力更好的程式碼喔!
在這篇文章裡,只把 Kotlin 最基本的語法簡單提示一下,許多更簡潔的寫法等到後續用到時會再做進一步的介紹。從下一章開始,筆者會介紹 4 個常用的 Collection 類別,開始探索 Kotlin Collection!