关于私有函数的@doc的沉默编译器警告

Nat*_*rot 4 elixir

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和之间切换#.

如何告诉编译器停止向我发出警告?

Pat*_*wak 7

无法使编译器警告静音.

过去,人们一直在询问如何记录用于ExDoc或DocTest的私有函数.但是,这不可能.PerJosé:

值得记住的是,在定义它的模块之外不存在私有函数.您无法测试私有函数,因为您无法在定义它的模块之外调用私有函数.

实际上,编译器甚至可以在编译期间完全删除私有函数.这意味着私有函数仅在查看代码时才存在,如果您需要查看代码来读取它,那么它不是文档.

出于所有目的,私有函数正是您定义的代码注释:直接或半永久性blob,直接针对开发人员.无法保证明天会存在,这就是为什么它是私人的.

  • 我的问题是“如何关闭编译器警告”,您的回答主要是关于为什么我不应该尝试为私有函数生成文档(这不是我要尝试的事情)。 (2认同)