【发布时间】:2010-12-15 16:17:45
【问题描述】:
我正在学习 Google 的新语言 Go。我只是在尝试一些东西,我注意到
如果您声明一个变量并且不对其执行任何操作,则 go 编译器(在我的情况下为 8g)无法
编译时出现此错误:hello.go:9: error declared and not used。我对此感到惊讶,因为大多数语言编译器只是警告你未使用的变量但仍然编译。
无论如何我可以解决这个问题吗?我检查了编译器的文档,没有看到任何会改变这种行为的东西。有没有办法只删除error 以便编译?
package main
import "fmt"
import "os"
func main()
{
fmt.Printf("Hello World\n");
cwd, error := os.Getwd();
fmt.Printf(cwd);
}
【问题讨论】:
-
os.Getwd 返回一个字符串和错误对象。我试过“cwd := os.Getwd();”这给出了一个错误,因为 os.Getwd 返回两个对象。
-
我有点喜欢强制执行经常使用的“警告是错误”范例的编译器;)
-
是的,但是 GC 语言中未使用的变量真的值得“错误”吗?
-
@Pynt:我认为假设是由于您不必声明变量,因此代码中的任何变量都是有原因的;因此,如果您想使用它而不使用它,那可能是一个错误。它还鼓励错误检查。
-
根据 Rob Pike 在他的 Go 技术演讲中的说法,这是一个错误的动机是设计者想要强制删除 cruft。
标签: variables go compiler-errors declaration