Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 变量已声明但未使用,但在同一函数中使用?_Go - Fatal编程技术网

Go 变量已声明但未使用,但在同一函数中使用?

Go 变量已声明但未使用,但在同一函数中使用?,go,Go,我是新来的,来自Python。我声明了变量,但Go告诉我它们不是。我不明白原因:/ .\logcollector.go:61:3: vonP declared but not used .\logcollector.go:69:3: bisP declared but not used 下面是一段代码片段: if isFlagPassed("von") { vonP, err := time.Parse("2006-01-02", *vonPtr

我是新来的,来自Python。我声明了变量,但Go告诉我它们不是。我不明白原因:/

.\logcollector.go:61:3: vonP declared but not used
.\logcollector.go:69:3: bisP declared but not used
下面是一段代码片段:

if isFlagPassed("von") {
    vonP, err := time.Parse("2006-01-02", *vonPtr)
    if err != nil {
        vonP, _ := time.Parse(layoutISO, "1970-01-01")
        fmt.Println("Ein Fehler ist aufgetreten. Von-Datum auf " + vonP.String() + " gesetzt.")
    }
}
稍微低一点:

fmt.PrintLn(vonP)
fmt.PrintLn(bisP)
所以这两种方法都被使用了。

vonP,err:=time.Parse(“2006-01-02”,*vonPtr)
您只能在此行中使用
vonP
if
-中的第二个用法是另一个变量

在您的情况下,上面的行必须看起来像

,err:=time.Parse(“2006-01-02”,*vonPtr)
如果您需要使用一个变量两次,请尝试以下方法

如果isFlagPassed(“von”){
vonP,err:=time.Parse(“2006-01-02”,*vonPtr)
如果错误!=零{
vonP,=time.Parse(layoutISO,“1970-01-01”)/=代替:=
fmt.Println(“Ein Fehler ist aufgetreten.Von Datum auf”+vonP.String()+“gesetzt.”)
}
}

未使用第一个
vonP
(应与错误消息中的行相对应)编译器错误正确。应用程序使用短变量声明声明if语句范围内的
vonP
变量。这两个变量都未使用。通过使用赋值而不是短变量声明进行修复。@Faulander Oops,使用第二个
vonP
。我错过了长队结束时的使用。请参阅,。在@Faulander:read中再次读取(或测试其他一些组合),如果只有以前在同一范围内声明过的变量,则这是一个错误。那么,我该怎么做呢?不要在if块内部使用另一个变量,而是在if块外部使用另一个变量?我已经尝试全局删除它们,但也不起作用。您可以从if语句中的第二个赋值中删除初始值设定项运算符。这样它就变成vonP,=time.Parse(layoutISO,“1970-01-01”)