为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法标记编译器以忽略未使用的导入?

有没有办法标记编译器以忽略未使用的导入?

Go
素胚勾勒不出你 2021-10-25 20:09:18
如果编译器可以识别未使用导入,那么是否可以将其设置为在没有导入的情况下继续编译?即使不可能,这种选择的利弊是什么?
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

不。有关推理,请参阅以下常见问题解答:


常见问题解答:我可以停止这些关于我未使用的变量/导入的投诉吗?


未使用的变量的存在可能表示存在错误,而未使用的导入只会减慢编译速度,随着时间的推移,随着程序积累代码和程序员,这种影响会变得很大。由于这些原因,Go 拒绝使用未使用的变量或导入来编译程序,用短期的便利换取长期的构建速度和程序清晰度。


尽管如此,在开发代码时,临时创建这些情况是很常见的,并且在程序编译之前必须编辑它们可能很烦人。


有些人要求提供一个编译器选项来关闭这些检查或至少将它们减少为警告。但是,还没有添加这样的选项,因为编译器选项不应该影响语言的语义,并且因为 Go 编译器不报告警告,只报告阻止编译的错误。


没有警告有两个原因。首先,如果值得抱怨,就值得在代码中修复。(如果它不值得修复,那就不值得一提了。)第二,让编译器生成警告鼓励实现警告可能使编译嘈杂的弱情况,掩盖应该修复的实际错误。


不过,解决这种情况很容易。使用空白标识符让未使用的东西在您开发时保持不变。


您可以做的是在暂时想要排除某些内容时使用空白标识符,例如


import (

    "fmt"

    _ "time"  // This will make the compiler stop complaining

)

如今,大多数 Go 程序员使用goimports工具,该工具会自动重写 Go 源文件以获得正确的导入,从而消除了实践中未使用的导入问题。这个程序很容易连接到大多数编辑器,以便在编写 Go 源文件时自动运行。


查看完整回答
反对 回复 2021-10-25
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信