I have tried different strategies to no avail. Following code in vscode
shows variable declared but not used for year
, month
and day
while they are used in casting (last 3 lines of code):
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)
//... rest of code
You create new variables inside your if-scopes called year, month, and day:
year, err := strconv.Atoi(s[0])
The :=
is the problem here. At the beginning add a var err error
to your code and remove the colon from your function calls:
var year, month, day int
var err error
year = -1
month = -1
day = -1
// ...
year, err = strconv.Atoi(s[0])
// ...
I believe this should fix your problem. Right now you are creating year, month, and day in the if-scope and never use them (inside the scope).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.