iT邦幫忙

2021 iThome 鐵人賽

DAY 2
2
Mobile Development

Android 口罩地圖入門實戰 30 天 (使用 Kotlin 程式語言)系列 第 2

Day 2:Kotlin 程式設計基礎入門 (1)

本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 UdemyYoutube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~

今天要跟大家介紹 Kotlin 語法的內容大綱:

  • 練習 Kotlin 基礎語法的軟體
  • 第一行程式碼 Hello World
  • 常數與變數
  • 單行註解 & 多行註解方式
  • 資料類型宣告方式
  • 基本資料型態:整數、浮點數
  • 基本資料型態:字串
  • 基本資料型態:布林值
  • 常用的運算符號介紹

練習 Kotlin 基礎語法的軟體

在進入 Kotlin 夢幻語法糖世界裡,這裡 KT 先提供三種可以練習 Kotlin 基礎語法的軟體:

Kotlin Playground

https://play.kotlinlang.org

Koltin 官方目前提供,免安裝任何軟體,可以隨時隨地,直接在線上練習 Kotlin 的基礎語法。相當的方便且不受電腦效能配置而影響編譯執行速度。

IntelliJ IDEA

https://www.jetbrains.com/idea/download

IntelliJ IDEA ,目前分為兩種版本 Ultimate 和 Community。我們選擇下載安裝 Community 版本,Community 版本是免費的喔。用這一個版本學習、練習 kotlin 基礎語法就相當夠用了喔,不用額外花費購買 Ultimate 的版本(一年授權費499元美金,約台幣15,000元)。

Android Studio

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

第一行程式碼 Hello World

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 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。

我們明天再見囉!!!掰掰~


上一篇
Day 1:過時的 Android 口罩地圖 APP 應用程式 ?!
下一篇
Day 3:Kotlin 程式設計基礎入門 (2)
系列文
Android 口罩地圖入門實戰 30 天 (使用 Kotlin 程式語言)30

尚未有邦友留言

立即登入留言