【发布时间】:2022-08-12 04:03:59
【问题描述】:
我正在清理别人的代码,所以我想删除未使用的函数。我试过这个:
staticcheck
但它只找到未使用的私有函数。所以我想也许我可以将所有内容编辑为私密。我试过这个:
gofmt -w -r \'SomeFunction -> someFunction\' *.go
但这仅适用于一种功能。是否可以将所有公共函数重命名为私有函数?
-
这是没有意义的。 Go 可以通过查看模块来判断哪些“私有”方法未被使用,因为根据定义,这些方法不能在模块外部使用。如果你做全部方法私有,而不是整个模块根据定义没用的和每一个方法将不被使用。您无法判断您担心的公共方法是否与静态代码分析一起使用,因为这些功能的用户居住在您的代码库之外,这就是公共方法为了.
-
@user229044 我只会导出一个函数,所以我会知道忽略该函数的删除建议。清理完所有内容后,我可以再次导出
-
为什么不只列出一个包中所有导出符号的列表,然后
grep应该使用它们的代码?如果未使用某个符号,则它可能是取消导出的候选对象。实际上,所述问题听起来很奇怪:是代码那糟糕的是那种出口的一切?我的意思是,在任何明智的代码库中,导出什么和不导出什么都不是一个决定机械地。 -
一个小问题:您是否考虑过制作有问题的包裹internal?该功能从另一个角度解决了“过度导出”的问题。
-
@kostix 我从另一个包开始。我只需要一个导出的函数,以及它所依赖的任何内部函数。
标签: go