默认情况下,将未使用的导入视为错误,强制您删除导入.我想知道是否存在改变这种行为的希望.例如将其减少为警告.
我发现这个问题非常烦人,阻止我在Go中享受编码.例如,我正在测试一些代码,禁用段/功能.不再使用lib中的某些函数(例如fmt,errors等),但是我需要在稍微测试后重新启用该函数.现在程序将无法编译,除非我删除这些导入.几分钟后,我需要重新导入lib.
在开发GAE计划时,我一次又一次地做这个过程.
Aci*_*dic 28
_在包名称前添加下划线()将忽略未使用的导入错误.
以下是如何使用它的示例:
import (
"log"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
Run Code Online (Sandbox Code Playgroud)
要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名.
在https://golang.org/ref/spec#Import_declarations上查看更多信息
Vol*_*ker 25
这个var _ = fmt.Printf诀窍很有帮助.
dtz*_*zvi 20
我也有同样的问题.我理解为什么他们实现该语言以禁止未使用的导入和变量的原因,但我个人觉得在编写代码时这个功能很烦人.为了解决这个问题,我改变了我的编译器,允许在我的代码中允许使用未使用的变量和导入的可选标志.
如果您有兴趣,可以在https://github.com/dtnewman/modified_golang_compiler上看到.
现在,我可以使用诸如go run -gcflags'-unused_pkgs'test.go之类的命令来运行代码,并且它不会抛出这些"未使用的导入"错误.如果我省略这些标志,则返回默认值,不允许未使用的导入.
这样做只需要进行一些简单的更改.纯粹主义者可能不会对这些变化感到满意,因为有充分的理由不允许使用未使用的变量/导入,但我个人同意你的看法,这个问题使得在Go中编码变得不那么愉快,这就是为什么我对这些变化进行了更改编译器.
使用if false { ... }来注释掉一些代码。大括号内的代码必须在语法上正确,否则可能是无意义的代码。
| 归档时间: |
|
| 查看次数: |
21571 次 |
| 最近记录: |