我有以下内容,我正在使用maphash迭代一个hashmap。处理hashmap中每个元素的lambda函数接收两个参数,一个键和一个值。但我从不使用该值,因此,在编译时我会收到警告。我该如何修复此警告?
答案 0 :(得分:2)
? (defun foo (a b) (+ a 2))
;Compiler warnings :
; In FOO: Unused lexical variable B
FOO
? (defun foo (a b)
(declare (ignore b))
(+ a 2))
FOO
答案 1 :(得分:2)
Rainer已经指出(declare (ignore ...))
(实际上已经存在于另一个问题中)。如果您对以散列哈希表键(或值)的其他方式感兴趣,可以使用loop:
(let ((table (make-hash-table)))
(dotimes (x 5)
(setf (gethash x table) (format nil "~R" x)))
(values
(loop for value being each hash-value of table
collect value)
(loop for key being each hash-key of table
collect key)))
;=>
; ("zero" "one" "two" "three" "four")
; (0 1 2 3 4)