GO语言似乎没有警告。我观察到的例子很少。1.“已声明且未使用”(如果声明了变量但未在任何地方使用它会产生错误,并且不会编译程序) 2.“已导入但未使用”(类似地,如果包被导入但未在任何地方使用,则会产生错误且不会编译程序)有人能提供帮助吗?如果他们有什么建议的话。
发布于 2011-08-15 04:56:52
Go正在努力防止这种情况:
这个男孩正在吸烟,并且在空中留下了烟圈。(
)女孩被烟雾激怒了,对她的恋人说:“你没看到烟盒上写着的警告吗,吸烟有害健康!”
男孩回答说:“亲爱的,我是一个程序员。我们不担心警告,我们只担心错误。”
基本上,Go不会让你摆脱未使用的变量、未使用的导入和其他通常是对其他语言的警告的东西。它能帮你养成一个好习惯。
发布于 2011-08-15 05:37:58
Go编程语言常见问题解答
Can I stop these complaints about my unused variable/import?
存在未使用的变量可能表示存在错误,而未使用的导入只会减慢编译速度。在代码树中累积足够的未使用的导入,事情可能会变得非常慢。由于这些原因,Go两者都不允许。
在开发代码时,临时创建这些情况是很常见的,而且在程序编译之前必须将它们编辑掉,这可能会很烦人。
有些人要求提供一个编译器选项来关闭这些检查,或者至少将它们减少为警告。然而,没有添加这样的选项,因为编译器选项不应该影响语言的语义,也因为Go编译器不会报告警告,只会报告阻止编译的错误。
没有警告有两个原因。首先,如果它值得抱怨,那么它就值得在代码中修复。(如果它不值得修复,那就不值一提。)其次,让编译器生成警告会鼓励实现对可能使编译变得嘈杂的弱情况发出警告,从而掩盖应该修复的真正错误。
不过,解决这种情况很容易。使用空白标识符让未使用的内容在开发过程中持续存在。
import "unused“//此声明通过引用包中的//项将导入标记为已使用。var _= unused.Item // TODO:提交前删除!func main() { debugData := debug.Profile() _= debugData //仅在调试期间使用。……}
发布于 2014-01-28 23:39:47
对于未使用的导入,一种解决方案是使用goimports,它是gofmt的一个分支。它会自动添加缺失的导入并删除未使用的导入(除了格式化您的代码之外)。
http://godoc.org/code.google.com/p/go.tools/cmd/goimports
我已经将我的编辑器配置为在保存代码时自动运行goimports。我现在无法想象没有它的go代码的编写。
https://stackoverflow.com/questions/7059616
复制相似问题