iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Software Development

溫柔學姐的Kotlin補課/教學系列 第 6

晚上的空教室補課:名字賦予存在之變數 Variable

  • 分享至 

  • xImage
  •  

「今天要正式開始補課了。」詩憶相當緊張,趁著午休時間,拿著課堂講義在圖書館試圖預習,可惜一個字也讀不進去,反倒帶來大腦缺氧,昏昏欲睡的副作用。當然,也可能是因為圖書館內的溫度相當舒適、也非常安靜的緣故。

『小詩?小詩?』夢裡似乎聽到有人呼喚自己,詩憶掙扎著醒來。

「原來是手機在響啊。」詩憶接起手機,聽到學姐的聲音瞬間清醒。「喔,是學姐。是、是,今天晚上的補課也拜託妳了,好,我知道了,我會準時過去。」

晚上很快的到來,詩憶踏進陌生的教室。寢室雖然方便,畢竟還要顧慮室友,所以唯心另外找了一間空教室授課。

「詩憶學妹,今天開始正式補課,所以也會出作業給妳唷,沒問題吧?」唯心關心的說。

詩憶舉起右手,宣誓一般的說:「是,我會盡力的。」

「那我們先從HelloWorld這個很有名的入門程式開始吧!」唯心微笑,建立了名為HelloWorld.kt的檔案。

圖1

「咦?沒有中文版嗎?」詩憶睜大眼。

「⋯⋯這個程式很有名,大家都直接用原文版的。而且,妳將來踏入業界後,未來的同事可能是外國人,從現在開始習慣英文比較好唷。」唯心溫柔的說。

詩憶決定從今天開始做好苦讀英文的覺悟。

集中注意力後,詩憶發現了和上次不同的地方。「學姐,這次新檔案選的是File而不是Class呢。」

「對呀,如果選擇Class就預設以class為主體,選File的話一片空白自由發揮。話是這麼說,但這些只是IDE替開發者節省力氣的樣板,也可以選了Class後,再清空重寫裡面提供的程式碼。」

圖2

圖3

「也因此,不可能在同一個資料夾下存在相同名字不同樣板的檔案唷。」唯心示範了一次錯誤操作。

圖4

「嗯嗯。」詩憶放心了,可以依賴IDE真好。

「好了,那我現在把HelloWorld程式放進去。」唯心複製貼上準備好的程式碼。

fun main() {
    println("Hello World!")
}

「就三行?」詩憶瞠目結舌。

唯心聳肩。「是呀,因為是入門程式,就這麼簡單。點擊main旁邊的綠色三角形,程式就可以印出Hello World!字樣了。」

圖5

圖6

「這樣今天的課程就結束了?」詩憶歪頭。

「妳以為我特地空出晚上的時間就為了教妳貼上三行程式碼?」唯心用手指輕戳她額頭。

「妳看這程式碼,有沒有什麼好奇的地方?儘管問。」

「學姐,為什麼要取名main,直接用helloworld不好嗎?」既然學姐都這樣說了,詩憶就提了一個她頗在意的問題。

「因爲一個程式可以由很多小程式片段組成,所以必須約定程式執行入口,通稱主程式main。如果改成其他名字,綠色三角形會不見,IDE也會提醒妳修正名字。」

圖7

「喔,那我沒有其他問題了。」詩憶把剛剛得到的答案寫在新筆記本上。

唯心在白板上寫上英文Variable。「現在要教妳變數的觀念。」

「如果要妳印出十行Hello World!,妳會怎麼做?」唯心問。

詩憶悶聲作業,教室裡迴盪著複製貼上的敲擊聲,片刻後,詩憶提交程式。

fun main() {
    println("Hello World!")
    println("Hello World!")
    println("Hello World!")
    //...省略中間重複行數
    println("Hello World!")
}

唯心看著意料中的答案,點頭。「很好,現在要求妳把這十行都多加一個問號呢?」

經過和剛剛相同的時間後,詩憶這次提交的程式碼每行都加上問號。

fun main() {
    println("Hello World!?")
    println("Hello World!?")
    println("Hello World!?")
    //...省略中間重複行數
    println("Hello World!?")
}

「很努力了呢。只是妳確定沒有漏掉沒改的地方嗎?」

詩憶瞪大眼睛檢查了十遍,沒看到不對的地方,疑惑的看著唯心。

「嗯,的確沒有漏掉,但是光是十行檢查就很辛苦吧?但在業界裡,程式碼千行、萬行的龐然巨物是很常見的。所以這就是變數的重要性了,可以把要印的文字用string這個名字存起來,賦予存在,我示範給妳看。」唯心接手改動詩憶的程式碼。

fun main() {
    val string = "Hello World!?"
    println(string)
    println(string)
    println(string)
    //...省略中間重複行數
    println(string)
}

「現在如果要再加一個問號,只要這樣做。」

fun main() {
    val string = "Hello World!??"
    println(string)
    println(string)
    println(string)
    //...省略中間重複行數
    println(string)
}

「學姐好厲害唷。」看唯心只改動string等號右側的文字就達成要求,詩憶一臉崇拜。

「還有更厲害的寫法唷,不過今天就先教到這裡吧。晚安,明天見。」唯心轉身收拾白板。

「學姐,我幫妳。」詩憶走過去想要幫忙。

「我自己整理就好。趁天色還沒全黑,早點回去吧,不是還不熟悉校園嗎?而且中午時候的聲音聽起來也很疲倦。」唯心輕推詩憶的肩膀。

「謝謝學姐,學姐晚安,明天見。」詩憶滿懷感激的離開教室。


上一篇
寢室的秘密授課(四):測試覆蓋率 Test Coverage
下一篇
週末雨會(一):變數的兩種狀態 val vs var
系列文
溫柔學姐的Kotlin補課/教學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言