311_common lisp case結構

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

https://github.com/GreyZhang/g_lisp

    繼續emacs以及lisp的學習,這一次看一下common lisp中的case結構。首先,我們設計一段測試代碼如下:

    通過上面的測試,可以看得出,設計的函數能夠識別 a b c三個關鍵字。

    我們通過提示看一下case結構,可以看得出後面的這些識別信息其實是key,也就是關鍵字。如果輸入一個沒有定義的關鍵字會是什麼情況呢?

    如果是沒有定義的關鍵字,輸出是nil。如果,輸入的是一個非關鍵字的信息呢?

    可以看得出,也是nil,沒有任何分支命中。那麼,是否可以增加一個類似C語言中的switch的default默認處理呢?其實,這個類似之前的typecase,使用的關鍵字是不同的。

    看得出,這個已經有了默認的處理行爲。而原來的設計不會發生變化。其實,還有一種操作是直接默認報錯。我們可以使用ecase或者ccase。

    剛剛的錯誤捕獲沒有看到代碼,我們先補充代碼設計。接下來,執行未定義操作。

    這樣,得到一個錯誤提示。使用ccase也有一個類似的效果,這裏不做繼續的演示了。

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

https://github.com/GreyZhang/g_lisp

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