0

Go 编译器抱怨未使用的变量和导入。因此,如果检测到任何未使用的 var/script,则 go 脚本无法在 gwan 中运行。

如果正在运行,gwan 在这种情况下会提供 404 错误......或者根本无法启动

有没有办法避免这种行为?

4

2 回答 2

8

没有真正简单的方法存在。没有什么比编译器标志更能关闭这种行为了。我想最好传递编译器首先可以吞下的代码。

编辑:FAQ 中的 C/P:我可以停止这些关于我未使用的变量/导入的投诉吗?

未使用变量的存在可能表明存在错误,而未使用的导入只会减慢编译速度。在你的代码树中积累足够多的未使用的导入,事情会变得非常缓慢。由于这些原因,Go 两者都不允许。

在开发代码时,通常会临时创建这些情况,并且在程序编译之前必须将它们编辑出来可能会很烦人。

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

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

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

import "unused"

// This declaration marks the import as used by referencing an
// item from the package.
var _ = unused.Item  // TODO: Delete before committing!

func main() {
        debugData := debug.Profile()
        _ = debugData // Used only during debugging.
        ....
}
于 2013-01-18T10:43:10.610 回答
-1

这是一个重复的 Go 语言问题,请参阅:

Go:“已声明但未使用的变量”编译错误

Go 编译器将"unused variable"其视为致命错误。这是所有其他语言都将其视为警告的内容,因此 G-WAN 会停止以让您修复脚本错误。

G-WAN 在这里无能为力:您必须按预期使用 Go。

于 2013-01-19T15:51:57.230 回答