如果您有未使用的变量,您的代码将无法编译。但是有一个例外。您必须使用在函数内部声明的变量,但是如果您有未使用的全局变量,也可以。也可以使用未使用的函数参数。
如果将新值分配给未使用的变量,则代码仍将无法编译。您需要以某种方式使用变量值以使编译器满意。
失败:
package main
var gvar int //not an error
func main() {
var one int //error, unused variable
two := 2 //error, unused variable
var three int //error, even though it's assigned 3 on the next line
three = 3
func(unused string) {
fmt.Println("Unused arg. No compile error")
}("what?")
}
编译错误:
/tmp/sandbox473116179/main.go:6:一个已声明且未使用/tmp/sandbox473116179/main.go:7:两个已声明且未使用/tmp/sandbox473116179/main.go:8:三个已声明且未使用
package main
import "fmt"
func main() {
var one int
_ = one
two := 2
fmt.Println(two)
var three int
three = 3
one = three
var four int
four = four
}
另一种选择是注释掉或删除未使用的变量:-)