iT邦幫忙

2021 iThome 鐵人賽

DAY 28
1
Software Development

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

考試的日子

終於到了考試的日子,學生們紛紛按照座位表坐上屬於自己的位置,遵循白板上的說明檢測電腦環境之後,考試就開始了。

題目大部分是選擇題,只有少數程式實作題。

選擇題基本都是觀念問題,比如資料類別data class和類別class的差異,標準函式Scope Functions的回傳值和Context Object的表述,Lambda與內聯inline、noinline、crossinline的關係,尾遞迴和遞迴的差別,中斷迴圈的關鍵字。

實作題也不難。

有些是一些特別情境的程式,比如同名稱的函式繼承:請寫一個D類別,擴展interface Ainterface B、和繼承abstract class C,其中C的建構子沒有參數;並請覆寫printName()函式,使其功能為依照A、B、C順序呼叫三者各自的printName()。

有一些是簡單的數學題,比如:輸入長度大於零的自然數陣列,輸出最大和最小。

有一些在考古題裡看過,比如:用迴圈寫數字反轉。

詩憶有所準備,很快就寫好了答案。

class D : A, B, C() {
    override fun printName() {
        super<A>.printName()
        super<B>.printName()
        super<C>.printName()
    }
}
fun getMinAndMax(ints : Array<Int>): Array<Int>  {
    var min = 0
    var max = 0
    ints.forEach {
        if (min > it) {
        	min = it
        }
        if (max < it) {
        	max = it
        }
    }
    return arrayOf(max, min)
}
fun inverterLoop(input: Int): Int {
    var input2 = input
    var tail = 0
    while (input2 != 0) {
        tail = tail * 10 + input2 % 10
        input2 /= 10
    }
    return tail
}

寫好的同學們在上傳答案後陸陸續續離開教室,詩憶在其中算不上最快,但也不是墊底,現在她只想著趕快補充消耗的糖分。


上一篇
框架在手,工作我有:MockK的簡介?真的只是簡介⋯⋯
下一篇
MockK正式上場,似曾相識的場景
系列文
溫柔學姐的Kotlin補課/教學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言