軌道
/
Common Lisp
Common Lisp
/
課程大綱
/
關鍵字參數
關鍵

關鍵字參數 在 Common Lisp

1 個練習

關於 關鍵字參數

在 Common Lisp 中,具名參數稱為關鍵字參數。

在 lambda list 中,關鍵字參數由&key這個 lambda list 關鍵字指定。 關鍵字參數不是必要參數,可以有預設值,也可以指定一個「supplied-p 參數」,它會是「true」或「false」,取決於是否為該參數提供了引數。

(defun keyword-parameter (&key (arg -1) arg)
(keyword-parameter)         ; => -1
(keyword-parameter :arg 13) ; => 13

在函式的引數中,關鍵字參數會以其「關鍵字名稱」來指定,而關鍵字名稱預設是參數名稱的關鍵字符號版本(也就是說,關鍵字參數name的關鍵字名稱是:name)。 可以為關鍵字參數指定另一個名稱,方法是使用由關鍵字名稱與參數名稱組成的陣列,而不是只使用參數名稱:

(defun other-keyword-name (&key ((other-name arg))) (list arg))
(other-keyword-name 'other-name 5) ; => (5)

雖然多種參數型態可以與其他型態的參數(選擇性參數與關鍵字參數)結合,但這可能會有問題,應該謹慎處理。 請參閱 Practical Common Lisp 中關於「混合不同的參數型態」的一節。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 關鍵字參數