已声明但未使用的变量



我尝试过不同的策略,但都无济于事。vscode中的以下代码显示了已声明但未用于yearmonthday的变量,而这些变量用于强制转换(代码的最后3行(:

var year, month, day int
year = -1
month = -1
day = -1
// Calculate Year Month Day
if eventCalendar == "gregorian" {
s := strings.Split("eventDate", "/")
year, err := strconv.Atoi(s[0])
if err != nil {
log.Fatal("Cannot convert year to integer: " + s[0] + ". " + err.Error())
}
month, err := strconv.Atoi(s[1])
if err != nil {
log.Fatal("Cannot convert month to integer: " + s[1] + ". " + err.Error())
}
day, err := strconv.Atoi(s[2])
if err != nil {
log.Fatal("Cannot convert day to integer: " + s[2] + ". " + err.Error())
}
} else if eventCalendar == "jalali" {
s := strings.Split("eventDate", "-")
year, err := strconv.Atoi(s[0])
if err != nil {
log.Fatal("Cannot convert year to integer: " + s[0] + ". " + err.Error())
}
month, err := strconv.Atoi(s[1])
if err != nil {
log.Fatal("Cannot convert month to integer: " + s[1] + ". " + err.Error())
}
day, err := strconv.Atoi(s[2])
if err != nil {
log.Fatal("Cannot convert day to integer: " + s[2] + ". " + err.Error())
}
// TODO: Convert to gregorian
} else {
panic("Unknown calendar type: eventcalendar")
}
strYear := strconv.Itoa(year)
strMonth := strconv.Itoa(month)
strDay := strconv.Itoa(day)

//。。。剩余代码

您可以在if范围内创建名为year、month和day的新变量:

year, err := strconv.Atoi(s[0])

:=就是这里的问题。在开始时,将var err error添加到代码中,并从函数调用中删除冒号:

var year, month, day int
var err error
year = -1
month = -1
day = -1
// ...
year, err = strconv.Atoi(s[0])
// ...

我相信这应该能解决你的问题。现在,您正在if范围中创建年、月和日,并且永远不要使用它们(在范围内(。

最新更新