2019年4月17日水曜日

開発環境

Head First Kotlin: A Brain-Friendly Guide (Dawn Griffiths(著)、David Griffiths(著)、O'Reilly Media)のChapter 8(nulls and exceptions - Safe and Sound)、Pool Puzzle(237)の解答を求めてみる。

コード

class Duck(val height: Int? = null) {
    fun quack() {
        println("Quack! Quack!")
    }
}

class MyDucks(var myDucks: Array<Duck?>) {
    fun quack() {
        for (duck in myDucks) {
            duck?.let { it.quack() }
        }
    }

    fun totalDuckHeight(): Int {
        var h: Int = 0
        for (duck in myDucks) {
            h += duck?.height ?: 0
        }
        return h
    }
}

fun main() {
    val ducks = arrayOf(
        Duck(1),
        Duck(2),
        null,
        Duck(3),
        Duck(4),
        null,
        Duck(5),
        null
    )
    val myDucks = MyDucks(ducks)

    myDucks.quack()
    println(myDucks.totalDuckHeight())
}

入出力結果

Quack! Quack!
Quack! Quack!
Quack! Quack!
Quack! Quack!
Quack! Quack!
15

Process finished with exit code 0

0 コメント:

コメントを投稿