macro的冒号(:)开头参数是怎么用的?

(cl-defmacro my-macro (&key foo bar)
  `(cons ,foo ,bar))

(my-macro :foo 1
          :bar 2)
;; => (1 . 2)

(cl-defun my-func (&key foo bar)
  (cons foo bar))

(my-func :foo 1
         :bar 2)
;; => (1 . 2)
2 个赞