【发布时间】:2015-09-14 12:33:25
【问题描述】:
可以检测到未使用的私有/未导出函数。为什么编译器不像未使用的变量那样抱怨?
编辑:这个问题也适用于未使用的私有类型/接口。
【问题讨论】:
-
因为它们可以被删除而没有副作用(
init除外,它总是运行)。变量较少,因为它们的实例化可能有副作用。此外,允许在包级别使用未使用的变量。 -
我认为他们这样做是为了保持代码干净,不仅是为了避免副作用(即分配)
-
未使用的类型(接口、结构)也不是错误。我认为唯一真正的答案是,虽然程序员可以合理地避免未使用的局部变量和导入,但如果您永远无法编译未使用的辅助函数或类型,那么构建任何东西都太困难了。
-
我也想知道为什么未使用的函数参数不会被标记为错误,但我认为显然必须这样才能使类型满足接口,即使它不需要所有参数某种方法。
-
@rob74 我实际上写了一个关于那个的答案:stackoverflow.com/questions/22549228/…
标签: go