SBCL警告已定义变量但从未使用过

奥利马斯

我从sbcl编译器收到警告,该变量已定义但未使用。而且编译器是正确的。我想摆脱警告,但不知道如何去做。这是一个例子:

(defun worker-1 (context p)
  ;; check context (make use of context argument)
  (if context
      (print p)))

 (defun worker-2 (context p)
   ;; don't care about context
   ;; will throw a warning about unused argument
   (print p))

 ;;
 ;; calls a given worker with context and p
 ;; doesn't know which arguments will be used by the
 ;; implementation of the called worker
 (defun do-cmd (workerFn context p)
   (funcall workerFn context p))

 (defun main ()
    (let ((context ()))
     (do-cmd #'worker-1 context "A")
     (do-cmd #'worker-2 context "A")))

do-cmd-function期望实现特定接口f(context p)的辅助函数。

sbcl编译器将引发以下警告:

in: DEFUN WORKER-2
;     (DEFUN WORKER-2 (CONTEXT P) (PRINT P))
;
; caught STYLE-WARNING:
 ;   The variable CONTEXT is defined but never used.
;
; compilation unit finished
;   caught 1 STYLE-WARNING condition
凯文·里德(Kevin Reid)

您需要声明该参数被有意忽略

(defun worker-2 (context p)
  (declare (ignore context))
  (print p))

ignore如果您确实使用了变量,也会发出警告要在两种情况下都禁止显示警告,可以使用声明ignorable,但这只能用于宏以及无法确定在声明时是否使用变量的其他此类情况

如果您还不熟悉declare,请注意它不是运算符,而只能出现在某些位置特别是,它必须位于defun正文中所有表单的前面,尽管它可以在文档字符串的上方或下方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

防止JSHint警告“已定义functionName但从未使用过”

为什么ReactJs会说“警告'counter:'已定义但从未使用过”而使用了变量?

Axios已定义但从未使用过

禁用函数的 JSHint 警告:变量已定义但从未使用

eslint:禁用警告-“已定义但从未使用过”特定功能?

反应,警告“ css”已定义,但从未使用过no-unused-vars

警告'ScrollingHorizontally'已定义,但从未使用过no-unused-vars

警告:值已定义但从未使用过;考虑用布尔测试代替

ESLint:fromEvent已定义但从未使用过(无未使用的变量)

已定义但从未使用过的PropType(ESLint,babel 6)

Vue插件-Vue已定义但从未使用过

组件已定义但从未使用过no-unused-vars

C#警告:已分配变量但从未使用过

变量已定义但从未使用(no-unused-vars)

定义后继续获取“已定义但从未使用过的ESLint。(no-unused-vars)”

TypeScript ESLint错误地报告:“已定义函数,但从未使用过。”

如何修复eslint中的“已定义但从未使用过的组件”?

已定义“ book”,但从未使用过MEAN堆栈控制器

错误 'count' 已定义但从未使用过 Vue.js

已声明但从未使用过的变量

Vue.js 'openNav' 已定义但从未使用/'closeNav' 已定义但从未使用

在try / catch块中避免警告“已声明变量但从未使用过变量”

不知道为什么我在使用 Vue 时收到“错误 'Navbar' 已定义但从未使用过”

VueJS-变量已定义但从未使用(将数据发送到Firebase)

Room:警告:从未使用过参数/从未使用过变量

设置了指针参数,但从未使用过警告

编译器返回:“'值'已定义但从未使用”

导入js文件成为'myProperty'已定义但从未使用

'Home' 已定义但从未使用 no-unused-vars".*