本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 Udemy 和 Youtube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~
今天要跟大家介紹 Kotlin 語法的內容大綱:
在進入 Kotlin 夢幻語法糖世界裡,這裡 KT 先提供三種可以練習 Kotlin 基礎語法的軟體:
Koltin 官方目前提供,免安裝任何軟體,可以隨時隨地,直接在線上練習 Kotlin 的基礎語法。相當的方便且不受電腦效能配置而影響編譯執行速度。
https://www.jetbrains.com/idea/download
IntelliJ IDEA ,目前分為兩種版本 Ultimate 和 Community。我們選擇下載安裝 Community 版本,Community 版本是免費的喔。用這一個版本學習、練習 kotlin 基礎語法就相當夠用了喔,不用額外花費購買 Ultimate 的版本(一年授權費499元美金,約台幣15,000元)。
https://developer.android.com/studio
Android Studio 整體介面與操作是基於 IntelliJ IDEA,兩套相當類似,只有少部分差異。Android Studio 為 Google 官方提供開發 Android 應用程式的整合式開發環境 (IDE: Integrated Development Environment)。
目前「口罩地圖」專案,是透過 Android Studio 進行開發。各種作業系統 (Windows、Mac、Linux、Chrome) 安裝方式,可以參考, 官方影片詳細教學介紹:https://developer.android.com/studio/install
fun main() {
println("Hello, world!!!")
}
main 函數,是一切的開始,程式運行起來最初的進入點,一個 Kotlin 檔案,只能有一個 main 函數。重複宣告,會被編譯器,提示程式衝突,重複宣告語法錯誤。
我們第一行要學的程式碼,即是透過 println 函數語法,在輸出資訊區印出小括號內的資料 Hello World 。其中雙引號 " " 前、後包覆的文字,會被視字串資料。
Hello, world!!!
所以,如果我們試著改寫其中雙引號 " " 裡面的資料,為"HKT線上教室",則會印出該文字:
println("HKT線上教室")
HKT線上教室
在 kotlin 1.3 之前的版本,在 main 的小括號內,需要定義參數,如:
fun main(args: Array<String>) {
println("Hello, World!")
}
但 args 這個參數往往到最後都沒有使用到,所以到了新版 kotlin 1.3 之後版本就不用帶任何參數,但之前的版本需要。
val (value,常數): 固定值,不希望事後變動此資料,可以使用此種型態。
var (variable,變數): 變動值,可以隨時動態存進去資料值。
宣告一個常數名字為 x 的盒子,並且將整數資料 1,存到 x 這個盒子裡面去。
val x = 1
val 只能定義一次資料值,我們刻意去犯錯,重複去塞資料到 x 常數值裡面去,IntelliJ IDEA 就會很聰明的智慧提示,在第二次定義的 x ,下方畫上紅色蚯蚓線,滑鼠鼠標,移動到紅色蚯蚓線下方, IntelliJ IDEA 就會跑出,錯誤原因來說明:「val cannot be reassigned」,就是 val 型態不能重複塞值。
若這時我們假裝刻意沒看到,堅持要執行(Run main.kt),展開左側 Project 專案面板,右鍵點擊 main.kt 檔案,在選單中選擇 「Run ‘MainKT’」,執行後的結果也會在資訊視窗中顯示錯誤訊息,此訊息會指出是哪一個檔案、哪一行發生錯誤。
你會發現 IntelliJ IDEA 很聰明,不用執行後才跟你說錯誤,在寫錯的當下,就會把有錯誤的檔案與行數用紅色蚯蚓線,標明錯誤。
我們修正,移除重複宣告的錯誤程式,使用 print 函數語法,列印出 x 常數資料。
fun main(args: Array<String>) {
val x = 1
println(x)
}
這時執行(Run main.kt),我們就可以在輸出資訊視窗中,看到列印出 x 盒子裡面的資料。
宣告一個變數名字為 y 的盒子,並且將整數資料 1,存到 y 這個盒子裡面去。
var y = 1
此時,若我們取出 y 值會得到 1。
var 可以重複塞值進去,我們再將整數資料 2,存到 y 這個盒子裡面。
var y = 1
y = 2
println(y)
這時我們取出 y 盒子裡面的資料,注意喔! 這時 y 盒子裡面的資料不是 1,而是已經被我們第二次存進去的資料給覆蓋掉。所以印出 y 值為 2 喔。
註解,是輔助程式開發者,在維護程式時,可以快速了解該行或該區塊是在做什麼運算,就好像貼一個便利貼,在程式碼中,來提醒未來的自己或他人說明解釋程式碼的功用。另外當程式被註解掉時,編譯器不會把它當程式碼去進行編譯與執行。
KT 建議程式碼要有良好的註解,在未來維護上會發揮很大的效用。當然很多學生反應,自己一定記得,當初寫過什麼,為什麼要那樣寫,但實際上可能一個禮拜左右或是兩個禮拜以上,再回來看當初寫的程式碼,就要花很長一段時間,去研究才能弄懂這段和那段在寫什麼,KT 貼心建議,與其當下註解說明解釋程式碼用途,才不會事後要很多倍的時間去追 code 回憶了解。
Android Studio 常用快速鍵,可以參考這篇:
https://tw-hkt.blogspot.com/2018/12/kotlin-android-studio.html
定義資料類型,可以明確的宣告資料為何種資料型態:
var a: Int = 1
也可以不宣告任何資料型態,直接存資料到常數或變數當中,讓 kotlin 自動去推斷資料類型:
var b = 1
若資料已經設定為特定資料型態,若再以其他資料類型存入,將會造成編譯或執行上的錯誤。
字串模板,以 $ 為開頭,後接「變量名稱」,範例:$name
var name = "HKT"
println("從零開始學Kotlin程式設計,講師:$name")
從零開始學Kotlin程式設計,講師:HKT
另外一種,字串模板,以 $ 為開頭,後接大括號,在大括號內,呼叫函數後得到的回傳值,範例:${sayHello()}
fun main(args: Array<String>) {
println("${sayHello()} 歡迎大家!")
}
fun sayHello(): String {
return "哈囉~"
}
哈囉~ 歡迎大家!
目前,大概知道字串可以透過 「$」 當作字串模板,來串接文字即可。之後會在細講討論函數這個部分,
將數字 1 資料,指派存到 a 裡面去
var a = 1
//加法
var a = 1 + 1
//減法
var b = 10 - 5
//乘法
var c = 5 * 2
//除法
var d = 10 / 2
//初始化變數值
var a = 0
var b = 0
var c = 0
var d = 0
//a = a + 1 ,可使用複合指派運算符號,簡寫為:
a += 1
//b = b -1 ,可使用複合指派運算符號,簡寫為:
b -= 10
//c = c * 5 ,可使用複合指派運算符號,簡寫為:
c *= 5
//d = d / 2 ,可使用複合指派運算符號,簡寫為:
d /= 2
var a = 10
var b = 5
//等於 ==
if(a == b) println("a 等於 b") else println("a 不等於 b")
//不等於
if(a != b) println("a 等於 b") else println("a 不等於 b")
//大於
if(a > b) println("a 大於 b")
//小於
if(a < b) println("a 小於 b")
//大於等於
if(a >= b) println("a 大於等於 b")
//小於等於
if(a <= b) println("a 小於等於 b")
var a = false
var b = true
//邏輯非,Not
if (!a) println("a 為 false") else println("a 為 true")
//邏輯且,And
if(a && b) println("a與b條件皆成立") else println("a或b其中一個條件不成立")
//邏輯或,Or
if(a || b) println("a或b其中一個條件成立") else println("a和b條件皆不成立")
HKT 線上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
Android Developers - Keyboard shortcuts
https://developer.android.com/studio/intro/keyboard-shortcuts
Kotlin docs
https://kotlinlang.org/docs/home.html
那今天【iThome 鐵人賽】就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。
我們明天再見囉!!!掰掰~