310_common lisp typecase分支結構

完整的emacs and lisp的學習集合整理如下:

https://github.com/GreyZhang/g_lisp

    繼續emacs以及lisp的學習,今天再從common lisp入手學一點基礎性的語言操作。今天看一下typecase。說起來,熟悉C語言的人應該大致瞭解這麼一個類似的處理結構,因爲它與C語言中的switch case結構十分相似。

    上面是一個簡單的使用例子,不同於C語言中的switch,這個功能判斷的不是數值而是類型。從上面的測試結果可以看得出,成功判斷出來了整形和字符串兩種類型。聯想C語言,switch分支有break也有一個默認的分支default。當然,說到這兒,著名的三大本中似乎也提到過這種設計可以說是一種錯誤的設計。90%的情況下,只要是沒有加break就是錯誤的。繼續說,有點偏離主題了,我們看看common lisp中與之相應的功能設計。

    上面的測試就用到了default的類似分支,這裏是otherwise。同時也做了一個測試,說明這個輸入能夠工作的一個前提是輸入的是一個單個的對象。

    增加一個測試,如果沒有這個默認的處理會如何呢?從上面看,沒有這個分支處理的時候這個只是會返回一個nil。

完整的emacs and lisp的學習集合整理如下:

https://github.com/GreyZhang/g_lisp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章