編寫第一個 Kotlin 程式

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

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

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

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

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

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

必要條件

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

課程內容

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

建構項目

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

需求條件

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

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

使用互動式程式碼編輯器

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

  1. 在瀏覽器中開啟 https://try.kotlinlang.org/。系統會開啟使用瀏覽器的程式設計工具。
  2. 您應該會看到類似於以下螢幕截圖的頁面,左側是檔案清單,右側是編輯器。右下角也可能會顯示黑色方塊,內含 Cookie 政策資訊。

警告:如不同意這個網站的 Cookie 政策,請勿繼續操作。

  1. 按一下黑色彈出式方塊左上角的「X」X,即可關閉方塊。
  1. 請參考下方附有註解的螢幕截圖,熟悉這個編輯器。

  • (1) 頂端的「學習」、「社群」和「線上試用」分頁標籤。如果尚未選取「Try online」(線上試用) 分頁標籤,請予以選取。
  • (2) 最左側窗格中的「檔案總管」。清單中的每個資料夾都包含一個小型獨立範例,可供學習 Kotlin。
  • (3) 右側窗格中的編輯器 是您編寫程式碼的主要工作區。

這個網頁版程式碼編輯器還有許多其他功能,但這些是您入門時需要瞭解的功能。

開啟程式碼範例

  1. 在檔案總管中,選取「Examples」>「Hello, world!」(如果尚未選取)。> 最簡單的版本 > SimplestVersion.kt (下圖中的 1)。
  2. SimplestVersion.kt 檔案名稱中,請注意 .kt 副檔名 (請參閱下方螢幕截圖中的 1)。就像圖片有 .jpg.png 副檔名,PDF 有 .pdf 副檔名一樣,所有 Kotlin 檔案都必須有 .kt 副檔名。
  3. 請注意編輯器中的程式碼 (下圖中的 2)。部分程式碼會醒目顯示。您將使用這段程式碼。

以下是編輯器中醒目顯示的程式碼:

fun main(args: Array<String>) {
    println("Hello, world!")
}

執行程式碼

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

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

  1. 在編輯器的右上角,找到綠色三角形 ,按一下即可執行程式。

  1. 如有需要,請向下捲動頁面,直到看到編輯器底部,即可看到底部的窗格 (下圖中的 1)。

  1. 按一下「控制台」分頁標籤。程式可將文字輸出內容列印到控制台

  1. 請注意「Console」(主控台) 窗格中顯示的 Hello, world!,如上圖所示。現在,您已經瞭解這項程式的用途:這項程式可顯示或輸出一則 Hello World 訊息到控制台視窗。
  2. 請注意,列印的 Hello, world! 上方是訊息 Compilation complete successfully。「編譯」程序會將 Kotlin 程式碼轉換為系統可執行的形式。如果成功完成編譯,表示程式中沒有會導致程式無法執行的錯誤。

節目片段

您已瞭解這項程式的用途,接下來請先看看程式的運作方式。

  1. 查看編輯器中的程式。
  2. 請注意,這組程式碼有兩個不同的區段。

程式頂端:

/**
 * We declare a package-level function main which returns Unit and takes
 * an Array of strings as a parameter. Note that semicolons are optional.
 */

在上方程式碼片段中,您可以看到這些符號內的文字:/**/.

這表示該行是註解,也就是提供給其他開發人員的資訊訊息。執行程式時,系統會忽略這則註解。目前也可以忽略這則留言!您將在後續的程式碼研究室中進一步瞭解註解。

計畫的下半部分:

fun main(args: Array<String>) {
    println("Hello, world!")
}

這三行程式碼是實際執行的程式,會列印訊息。

變更 Hello World 程式碼

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

  1. "Hello, world!" 文字變更為 "Happy Birthday!"
  2. 按一下右上角的綠色執行按鈕 ,即可執行程式。
  3. 在「Console」中,您現在應該會看到 Happy Birthday! 列印的內容,如下方螢幕截圖所示。

How does it work?

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

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

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

瞭解程式的各個部分

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

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

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

println("Happy Birthday!")

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

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

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

這就是最小的 Kotlin 程式。

fun main(args: Array<String>) {
    println("Happy Birthday!")
}

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

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

程式碼應如下所示。

fun main(args: Array<String>) {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

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

  1. 執行程式以瞭解其功能。
  2. 前往「Console」視窗,控制台視窗中會顯示 3 行顯示的文字,如下圖所示。

做得好!

處理錯誤

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

  1. 在程式中,移除 Jhansi 文字兩邊的引號,讓該行程式碼如下所示。
println(Jhansi)
  1. 執行程式。您會看到顯示的 Jhansi 以紅色顯示,並且程式碼第 8 行旁邊有一個驚歎號,以顯示何處出現了錯誤。

  1. 向下捲動即可查看控制台。
  2. 選取「問題檢視」分頁標籤 (如果尚未選取)。
  3. 查看「問題檢視畫面」分頁。系統會顯示含有相同驚嘆號圖示和「Error」字詞的訊息。接著說明程式碼中的錯誤。

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

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

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

  • https://try.kotlinlang.org/ 是互動式的網頁程式碼編輯器,可用於練習編寫 Kotlin 程式。
  • 所有 Kotlin 程式都需要有 main() 函式:fun main(args: Array<String>) {}
  • 使用 println() 函式顯示一行文字。
  • 將要顯示的文字置於雙引號之間。例如 "Hello"
  • 重複 println() 指示以顯示多行文字。
  • 在程式中,錯誤會標示為紅色。「問題檢視畫面」分頁中會顯示錯誤訊息,可協助您找出錯誤發生的位置及可能原因。

這個程式碼研究室是 Android Kotlin 基本概念課程的一部分。

請練習下列項目:

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

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

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

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

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

程式碼:

fun main(args: Array<String>) {
    println("no line break")
    println("")
    println("with line \n break")
}

輸出內容:

檢查操作:

以下為可能的解決方法:

fun main(args: Array<String>) {
    print("Happy Birthday!\n")
    print("Jhansi\n")
    print("You are 25!")
}