Lisp - 关键字参数



关键字参数允许你指定哪些值与哪些特定参数匹配。

它使用 &key 符号表示。

当你将值发送到函数时,你必须用 :parameter-name. 为值加上前缀。

以下示例说明了此概念。

示例

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

main.lisp

; define a function show-members to print list of arguments passed
(defun show-members (&key a b c d ) (write (list a b c d)))
; call function with three parameters
(show-members :a 1 :c 2 :d 3)
; terminate printing
(terpri)
; call function with two parameters
(show-members :a 1 :b 2)

输出

当你执行该代码时,它将返回以下结果 −

(1 NIL 2 3)
(1 2 NIL NIL)

示例

更新名为 main.lisp 的源代码文件,并在其中键入以下代码。

main.lisp

; define a function show-members to print list of arguments passed
(defun show-members (&key a b c d ) (write (list a b c d)))
; call function with three parameters
(show-members :a 'p :b 'q :c 'r :d 's)
; terminate printing
(terpri)
; call function with two parameters
(show-members :a 'p :d 'q)

输出

当你执行该代码时,它将返回以下结果 −

(P Q R S)
(P NIL NIL Q)

示例

更新名为 main.lisp 的源代码文件,并在其中键入以下代码。

main.lisp

; define a function show-members to print list of arguments passed
(defun show-members (&key a b c d ) (write (list a b c d)))
; call function with three parameters
(show-members :a 1.0 :c 2.0 :d 3.0)
; terminate printing
(terpri)
; call function with two parameters
(show-members :a 1.0 :b 2.0)

输出

当你执行该代码时,它将返回以下结果 −

(1.0 NIL 2.0 3.0)
(1.0 2.0 NIL NIL)
广告