3

我有(至少)一个我的主程序所在的包。我有另一个用于运行测试的包。我:使用测试包的defpackage形式的主程序包,但只导入导出的符号。所以我不能测试所有的函数,只能测试我明确导出的那些(公共 API)。我该如何解决这个问题?

4

1 回答 1

7

您始终可以使用双冒号限定符引用内部(未导出)符号:

(package-name::function-name)

您还可以使用import. 例如:

(import 'package-name::function-name)
(fboundp 'function-name)  ;; => t

这是CLHS 上的条目import

另外,如果你还没有读过,我推荐 Practical Common Lisp 中的Programming in the Large: Packages and Symbols一章。它没有直接解决您的问题,但我提到它是因为我发现它对重新分级包和符号很有帮助。

于 2013-08-21T17:20:13.103 回答