來了解一下各方對 Kotlin 的見解
然後也提供一下學習資源 : Kotlin官方文檔
本篇大部分內容都是參考 Kotlin 的官方文檔來的,可以去該網站多挖挖寶
以下開始一些基礎介紹
- Variables
var 也有上面的宣告方式,差別在於 var 可以重新賦值
在 Kotlin,變數預設是 non-null type,也就是不能是 null
Kotlin 的一大特色就是能盡量減少 NullPointerException 發生的機率
以下是關於變數 null safety 的介紹
型態轉換也有 null safety 可以使用
如果今天有一個 class 的 property,我們不希望為 null,但也不想在 construtor 去初始化,該怎麼做呢?
lateinit 的用法有一些限制
(1) 只能用在 var 變數
(2) 不能用在 primitive type (Int, Float, ...)
(3) 該變數不能有客製化的 setter 和 getter
- Functions
如果沒有 return value,用 Unit 表示,也可以把 Unit 省略
如果一個函式的參數比較多,這時候可以使用 named arguments 來增加可讀性
function 也可以使用 variable number of arguments
使用 vararg 有幾點注意事項
- function 只能有一個 parameter 被標示為 vararg
- vararg parameter 通常要放在 parameter list 的最後一個。如果不是最後一個,則在使用的時候,必須搭配 named argument 來使用
- Class
class 的基本宣告方式如下
Kotlin 有個和 Java 不一樣的地方是,Kotlin 沒有 new 這個 keyword
每個 class 都會有一個 primary constructor
primary constructor 是不能寫 code 的,必須使用 initializer block 來達到這個目的
Kotlin 還有提供 secondary constructor,一個 class 可以有多個 secondary constructor
在 Kotlin,function 和 constructor 的 arguments 都可以有 default value,這可以簡化原本 Java 的寫法
在繼承 class 的時候,constructor 的寫法有下列兩種情況
以下示範 derived class 如何複寫 function
當 derived class 繼承或實現多個 base class or interface 的情況呢
可以看到因為有 doAction() 的 supertype 不只一個,所以在 Derived class 就一定得用 override 去複寫這個函式
而在這種情況下,要指定使用哪個 supertype 的 doAction(),就可以使用 super<BaseName> 來指定
至於 showMsg() 和 power(),因為來源都只有一個,所以不會被強迫要求用 override 複寫
- What's Next
不過也可以看出來,Kotlin 在某些部分也有一些限制,像是為了 null safety,programmer 必須在寫 code 的時候遵從一些語法才行
下一篇會繼續介紹 Kotlin 的基礎語法,讓各位更熟悉 Kotlin