【发布时间】:2018-07-13 17:29:25
【问题描述】:
我是 golang 新手,这是我的程序:
func main() {
checkParam(os.Args)
var got,bj,ll float32
var dur int
var err error
if bj, err := strconv.ParseFloat(os.Args[1], 32); err != nil {
usageExit()
}
if ll, err := strconv.ParseFloat(os.Args[2], 32); err != nil {
usageExit()
}
if dur, err := strconv.Atoi(os.Args[3]); err != nil {
usageExit()
}
for i := 0; i < dur; i++ {
got := bj * (1.0 + ll)
}
fmt.Print("Result: %f", got)
_ = got
_ = bj
_ = ll
_ = dur
_ = err }
但我在运行时遇到错误:
gateway@gateway-virtual-machine:basic$ go run fulijisuan.go
command-line-arguments
./fulijisuan.go:27:47: bj declared and not used
./fulijisuan.go:31:47: ll declared and not used
./fulijisuan.go:35:38: dur declared and not used
./fulijisuan.go:40:22: got declared and not used
在我看来,我在上面定义了err/bj/ll/fur/got,然后使用这些值来接受Args。
为什么我得到错误?我想我已经使用了这些值。
已经修复了,将 := 替换为 = 。
【问题讨论】:
-
仅仅给它们赋值并不认为是在使用它们。如果您不需要读取该值,请不要分配给它们。
-
这不是关于未使用变量的问题,而是关于 if 范围内的新变量的问题。
标签: go