Go 变量已声明但未使用,但在同一函数中使用?
我是新来的,来自Python。我声明了变量,但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
.\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”)