Elixir想警告我,我的@doc注释不会被复制到beam文件中:
warning: function foo/1 is private, @doc's are always discarded for private functions
lib/hello/world.ex:12
Run Code Online (Sandbox Code Playgroud)
但我宁愿使用@doc我的所有功能文档,而不是在@doc和之间切换#.
如何告诉编译器停止向我发出警告?
无法使编译器警告静音.
过去,人们一直在询问如何记录用于ExDoc或DocTest的私有函数.但是,这不可能.PerJosé:
值得记住的是,在定义它的模块之外不存在私有函数.您无法测试私有函数,因为您无法在定义它的模块之外调用私有函数.
实际上,编译器甚至可以在编译期间完全删除私有函数.这意味着私有函数仅在查看代码时才存在,如果您需要查看代码来读取它,那么它不是文档.
出于所有目的,私有函数正是您定义的代码注释:直接或半永久性blob,直接针对开发人员.无法保证明天会存在,这就是为什么它是私人的.