什麼是 Kotlin ?

Pollyanna - Android Development
4 min readJun 23, 2023

--

最近因緣際會開始接觸 Android 開發,而近代談到 APP 開發就一定會討論到Kotlin 了。

Kotlin 簡介

Kotlin 是一個頗近代的語言,在 2016 被 JetBrains發明。而 Kotlin 最大的特色就是 100% 和 JAVA 配合,意思是Kotlin 是接受 Java 程式碼內容的,不用因為使用 Kotlin 就全部用 Kotlin 重寫。

JAVA 的工具人

相對於Java而言,Kotlin 更加簡潔以及有效率。簡單來說,Kotlin 是針對Java 優化的一種語言,並且與 Java 本身的語言是可以互動並且替換操作的。使用者可以不用在Kotlin與Java 之間猶豫二選一,需要的時候再使用Kotlin 即可。

靜態語言

和 Java 一樣,Kotlin 是靜態語言。動態型別跟靜態型別最大的差異,就是需不需要在宣告型別時定義變數的型別,舉例來說,Java & Kotlin 定義一個變數時,需要先宣告型別,再進一步賦值:

String hello = 'hello'; //宣告 hello 為一個String 變數
Int number = 123 // 宣告 number 為一個數組變數

而與之相反,像 JS 這樣不用事先宣告型別的語言就被稱之為動態語言。而靜態語言的好處是系統可以在宣告時就先檢測錯誤,以避免開發者之後撰寫發生因為型態矛盾而產生的錯誤。

編譯過程

Kotlin 與 Java 淵源極深,除了語言結構相似,Kotlin 編譯過程也跟 Java 大有關係。

我們過去曾經提過, JavaScript 是屬於直譯式語言,撰寫完程式碼後只要用直譯器就可以執行。這樣的壞處是因為使用者是先接受程式碼然後用自己的直譯器執行,所以效率比較不好。

而與之相反,編譯式語言是指寫好程式碼,執行之前,這個程式碼會需要轉檔。其中編譯的過程可以分為1. 轉成中間檔給環境下載再執行(如 Java & Kotlin ) 2. 轉為可以直接執行的執行檔(如 C & C++)。整體而言,編譯式語言效率會比直譯式語言更好(因為使用者端不用再下載直譯器以及執行碼),不過C & C++ 又會再比 Java & Kotlin 快一些些。

而Kotlin 的編譯過程,是會將程式碼轉譯成 Java Bytecode(中間碼), 然後透過 JVM 執行轉譯過後的中間碼。

我在參考文獻的地方也有貼一些實際安裝Kotlin 的參考文章(主要會是 windows )。雖然我們寫這些語言的時候不會真的看到轉譯的過程,但是花一點時間理解這些語言跟執行環境,才能知道自己到底花這麼多時間是在安裝些什麼,也更能從一些基本的原理了解每一個語言是用的情境、還有學習的價值。

日後還要請Kotlin 多多照顧了!請多多指教!!

參考文獻

--

--

Pollyanna - Android Development
Pollyanna - Android Development

Written by Pollyanna - Android Development

是一個很希望累積經驗讓自己有勇氣克服挫折的人。程式自學經驗一年,目前是 Android 工程師,仍在努力學習。

No responses yet