編寫第一個 Kotlin 程式

1. 事前準備

在本程式碼研究室中,您將使用可在瀏覽器執行的互動式編輯器,以 Kotlin 語言編寫第一個程式。

將「程式」想成一系列的指示,可讓系統執行某些動作。舉例來說,您可以編寫程式製作生日卡,並在該程式中編寫指示來顯示祝賀文字,或根據某人的出生年份計算年齡。

就像使用人類語言與他人溝通交流一樣,您也可以利用程式設計語言與電腦作業系統溝通交流。更棒的一點是,程式設計語言沒有人類語言那麼複雜,而且更具邏輯性!

Android 應用程式以 Kotlin 程式設計語言編寫而成。Kotlin 是一種現代化語言,可協助開發人員有效地編寫程式碼,盡量減少錯誤。

同時學習建立應用程式的方法和程式設計的基本知識並不容易,因此我們會先概略説明程式設計,再講解如何建構應用程式。先熟悉某些程式設計基本知識,不僅是建立應用程式的重要步驟,也會使未來在本課程中建立第一個應用程式更加輕鬆。

「程式碼編輯器」這項工具可協助您撰寫程式碼,就像文字處理器 (例如 Google 文件) 協助您建立文字文件一樣。在本程式碼研究室中,您要在瀏覽器中使用互動式 Kotlin 編輯器。也就是說,您不必安裝任何軟體,即可開始開發應用程式。

必要條件

  • 在網路瀏覽器中使用互動式網站。

課程內容

  • 如何建立、變更、瞭解並執行用於顯示訊息的精簡 Kotlin 程式。

建構項目

  • 以 Kotlin 程式設計語言編寫的程式,執行時會顯示訊息。

需求條件

  • 安裝了新式網路瀏覽器的電腦,例如最新版 Chrome
  • 電腦可以連上網際網路。

2. 在 Kotlin 中執行第一個程式

在這項工作中,您要使用網站上的編輯器,立即開始以 Kotlin 語言進行程式設計。

使用互動式程式碼編輯器

您可以使用網頁式工具來建立第一項程式,而不必在電腦上安裝軟體。

  1. 在瀏覽器中開啟 https://developer.android.com/training/kotlinplayground。系統會開啟使用瀏覽器的程式設計工具。
  2. 您應會看到類似以下螢幕截圖的頁面,頁面中間是程式碼編輯器。Kotlin Playground

以下是編輯器中的程式碼:

fun main() {
    println("Hello, world!")
}

執行程式碼

執行您建立的程式,與在電腦上執行文字處理器等程式大同小異。不同之處在於,執行程式以完成工作或玩遊戲時,您主要關心程式可以為您做什麼,而不是使其運作的程式碼。編寫程式時,您會親眼看見並著手參與實現魔法的程式碼。

我們來看看這項程式的用途!

  1. 在編輯器的右上角,找到白色或綠色三角形 63ca117bafffc8da.png,按一下即可執行程式。
  2. 查看底部的窗格。
Hello, world!
  1. 請注意顯示的 Hello, world!,如上圖所示。現在,您已經瞭解這項程式的用途:這項程式可顯示或輸出一則 Hello World 訊息。

編譯是一項程序,可將 Kotlin 程式碼轉換為系統可執行的形式。如果成功完成編譯,表示程式中沒有會導致程式無法執行的錯誤。如果發生問題,問題會顯示在畫面底部的窗格。

3. 修改程式

變更 Hello World 程式碼

現在要稍微變更程式的用途。

  1. "Hello, world!" 文字變更為 "Happy Birthday!"
  2. 按一下右上角的藍色或綠色執行按鈕,即可執行程式。
  3. 畫面底部應會顯示 Happy Birthday!,如下所示。
Happy Birthday!

運作方式

這是怎麼完成的?光是要顯示這一點字就已經要好多程式碼!

假設您想讓朋友在一張紙上寫下「Hello, world!」,以言語表達時會隱含很多資訊。如果您只是告訴他們「在這張紙上寫下 Hello world!」,他們會猜想您說這句話背後的意思。比方說,他們會假設自己需要使用筆,並且您希望他們用字母書寫!電腦無法進行這些假設,因此您需要提供每個步驟的確切說明。

就像英文有結構一樣,程式設計語言也是如此。如果您學過其他語言,就會知道要掌握文法、拼寫 (也許會接觸到新的符號字母表) 和字彙並不容易。學習程式也存在類似的挑戰,但幸運的是,它沒有學習英文等語言那樣複雜,也更具邏輯性。

瞭解程式的各個部分

現在,我們來看看程式碼。此程式的每個部分都是一個特定目的,而您需要瞭解所有部分,才能執行這個程式。我們先從第一個字詞開始。

fun
  • fun 是 Kotlin 程式設計語言中的字詞。fun 代表函式。函式是程式中用於執行特定工作的一部分。
fun main
  • main 是這個函式的名稱。函式具有名稱,因此可以彼此區別。此函式稱為 main,因為這是您執行程式時呼叫的第一個函式或主要函式。每項 Kotlin 程式都需要名為 main 的函式。
fun main()
  • 函式名稱後面一律加上兩個括號 ()
  • 您可以在括號中加入與該函式搭配使用的資訊。函式的輸入內容稱為「引數」,或簡短表示為 args。稍後,您將進一步瞭解引數。
fun main() {}
  • 請注意括號後方的大括號 {}。函式內部是用於完成工作的程式碼。這些大括號括住了多行程式碼。

檢查大括號之間的程式碼:

println("Happy Birthday!")

這行程式碼會顯示 Happy Birthday! 文字。

  • println 會指示系統顯示一行文字。
  • 您可在括號內放置要顯示的文字。
  • 請注意,要顯示的文字會以引號括住。這會指示系統準確顯示引號內的所有內容。

如要實際顯示文字,整個 println 指示都必須位於 main 函式中。

這就是最小的 Kotlin 程式。

fun main() {
    println("Happy Birthday!")
}

4. 擴充程式

做得好!您使用 println() function 顯示了一行文字。不過,您可以視需要在函式中加入不限行數的指示,以利完成工作。

  1. 請複製這行 println("Happy Birthday!") 並貼到下方兩次。請確定您貼上的行位於 main 函式的大括號中。
  2. 將要顯示的文字之一變更為某人的名字,例如「Jhansi」。
  3. 將要顯示的其他文字變更為「You are 25!」。

程式碼應如下所示。

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

這個程式碼執行時,您希望它能產生什麼效果?

  1. 執行程式以瞭解其功能。
  2. 前往輸出窗格,控制台視窗中會顯示 3 行顯示的文字,如下圖所示。
Happy Birthday!
Jhansi
You are 25!

做得好!

處理錯誤

在程式設計期間出錯是很正常的,很多工具都會提供意見回饋,協助您修正錯誤。在這個步驟中,建立一項錯誤來瞭解具體情況。

  1. 在程式中,移除 Jhansi 文字兩邊的引號,讓該行程式碼如下所示。
println(Jhansi)
  1. 執行程式。您會看到顯示的 Jhansi 以紅色顯示,並且您變更的那行程式碼旁邊有一個驚歎號,以顯示何處出現了錯誤。含有錯誤驚嘆號的訊息
  2. 查看輸出窗格。窗格中會顯示含有相同驚嘆號圖示的訊息,接著說明程式碼中的錯誤。

「Unresolved reference」訊息

  1. Unresolved reference: Jhansi」這則訊息可讓您瞭解系統認為程式碼發生錯誤的原因。即使不知道錯誤訊息的含義,或許也能找出問題所在。在這個案例中,您瞭解了 println() 指示會顯示文字。此外,之前也學到文字必須位於引號之間。如果文字未加上引號,就會發生錯誤。
  2. 請重新加上引號。
  3. 請執行您的程式,確保能正常運作。

恭喜!您已經執行並變更了第一個 Kotlin 程式!

5. 解決方案程式碼

以下是您在本程式碼研究室中使用的完整程式碼。

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

6. 摘要

  • https://developer.android.com/training/kotlinplayground 是互動式的網頁程式碼編輯器,可用於練習編寫 Kotlin 程式。
  • 所有 Kotlin 程式都需要有 main() 函式:fun main() {}
  • 請使用 println() 函式顯示一行文字。
  • 將要顯示的文字置於雙引號之間。例如 "Hello"
  • 重複 println() 指示以顯示多行文字。
  • 在程式中,錯誤會標示為紅色。輸出窗格中會顯示錯誤訊息,可協助您找出錯誤發生的位置及可能原因。

7. 瞭解詳情

8. 自行練習

請執行下列操作:

  1. println() 指示變更為 print()
  2. 執行程式。發生了什麼?

提示:print() 指示只會顯示文字,不會在每個字串結尾加上換行符號。

  1. 請修正文字,使訊息的各個部分分行正確。

提示:在文字中加入 \n 即可新增換行符號。例如 "line \n break"。加入換行符號會變更輸出內容,如下所示。

提示:不輸入文字即可顯示空白行:println("")

程式碼:

fun main() {
    println("no line break")
    println("")
    println("with line \n break")
}

輸出內容:

no line break

with line
 break

檢查操作:

以下為可能的解決方法:

fun main() {
    print("Happy Birthday!\n")
    print("Jhansi\n")
    print("You are 25!")
}