iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
Software Development

新手也能懂的 Kotlin Collection 賞玩門道系列 第 6

第六天:Kotlin 基礎語法

在深入 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
  • Number(數字)- 有幾種不同類型的數字,差別在於 bits、最小值、最大值的不同,包括:
    • Byte
    • Short
    • Int
    • Long
    • Float
    • Double
  • Array(陣列)- 將多個有關係的資料放在一個容器裡,方便做資料處理。Array 及其他集合類型包括 ListSetMap 就是這個系列文的主角。

提醒一下,在 Kotlin 的世界裡,所有東西都是物件(Object),我們可以隨時呼叫該物件身上的屬性和方法。不過和 Java 不同,Kotlin 沒有 Primitive Types,通通都是大寫字開頭的 Reference Types,在 JVM 上執行時,Kotlin 編譯器會為了效能自動幫你轉換。

函數

Kotlin 支援 Top-Level Function,要宣告一個函數很簡單,包括 6 個部份:

  • 可見性修飾符 - 預設沒寫就是 public
  • 函數宣告關鍵字 - Kotlin 使用 fun 做為函數宣告的開頭
  • 函數名稱 - 依照函數的功能取一個容易理解和記憶的名字
  • 函數參數 - 依照函數要做的動作,可以從外部傳入所需的參數,每一個參數要定義名字及資料型別,若有需要的話也可以提供預設值
  • 返回型別 - 函數執行完成後,回傳資料的型別為何,以 : 隔開
  • 函數內容 - 以 { } 包住所有函數要做的動作
fun greeting(name: String = "Everyone"): String {
    return "Hello, $name"
}

呼叫函數的方式很簡單,直接寫函數的名字加上 () 即可,若有需要傳入參數的話就把參數準備好放在 ( ) 之間。

greeting("Shengyou") // 畫面輸出 Hello, Shengyou

流程控制

Kotlin 常用的流程控制有 ifforwhen,寫法如下:

// 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 很像,不過在語意上更清楚、語法上也更彈性,善加利用的話可以寫出表達力更好的程式碼喔!

邁向 Collection

在這篇文章裡,只把 Kotlin 最基本的語法簡單提示一下,許多更簡潔的寫法等到後續用到時會再做進一步的介紹。從下一章開始,筆者會介紹 4 個常用的 Collection 類別,開始探索 Kotlin Collection!

參考資料


上一篇
第五天:建立版本管理
下一篇
第七天:Kotlin Collection 之 Array
系列文
新手也能懂的 Kotlin Collection 賞玩門道31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言