iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0

「null 啊⋯⋯」小孩托著下巴思考,慢慢解釋道:「當問號成立,那就是 null 的狀態;反過來,就是非 null 的狀態。非 null 的時候,有時候會用驚嘆號來標記,不過驚嘆號的意思和問號又不太一樣就是了。」

「竟然驚嘆號也會出現在程式碼裡啊⋯⋯」我有點想笑。

「對啊,程式語言設計的時候,大概想把各種符號都塞進去吧。」他聳聳肩,「不過你看,如果不用問號,像剛剛 enqueue 的那段程式碼,就會變成這樣,打起來多麻煩啊。」

        //tail?.next = newNode ?: run { head = newNode }
        if (tail != null) {
            tail.next = newNode
        } else {
            head = newNode
        }

我比對了一下,突然恍然大悟:「啊!所以說,?. 的情境是『非 null 的狀態比較重要』,但是像 if (head == null) 這種情境就是反過來,所以才不能用 ?.,對吧!」

「沒錯,答對了。」小孩點點頭。

在我還沉浸於小小成就感時,小孩已經把 peek 的程式碼隨手寫完,然後停下來盯著我看。

「要不要自己試試寫 isEmpty 呢?」他壞笑著,把機會推到我面前。

「行啦,我試試看!」我深吸一口氣,硬著頭皮動筆。

寫完之後,我皺著眉,心裡有些沒底:「嗯⋯⋯我在猶豫,到底是哪個才是對的。」

「給我看看。」

    fun isEmpty(): Boolean = head == null //看櫃檯前面有沒有隊伍的頭。
    fun isEmpty(): Boolean = tail == null //看有沒有隊伍尾巴

小孩輕輕拍了拍我的肩膀,露出一個意味深長的笑容:「多給自己一點信心吧,兩個寫法其實都是對的。」

接著他雙手一攤,像是宣告結局般宣布:「好了,既然你完成了這次的考驗,那就——下次見囉!」

話音剛落,他忽然伸手輕輕一推。

「等等,什麼叫下次見——?!」我驚慌大喊,但還沒等到答案,眼前的景象便迅速扭曲、遠去,意識也跟著滑入黑暗之中⋯⋯


上一篇
enqueue 和 dequeue
下一篇
第六杯奶茶的下場
系列文
奶茶裡藏的資料結構(Kotlin範例)9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言