Golang中的简单整数声明
我并不认为自己是新手,但我不明白为什么这个非常简单的代码段不能声明我的整数Golang中的简单整数声明,go,undeclared-identifier,Go,Undeclared Identifier,我并不认为自己是新手,但我不明白为什么这个非常简单的代码段不能声明我的整数 func main () { var totalResults int rFile, err := os.Open("users.csv") //3 columns if err != nil { fmt.Println("Error:", err) return } defer rFile.Close() // Creating cs
func main () {
var totalResults int
rFile, err := os.Open("users.csv") //3 columns
if err != nil {
fmt.Println("Error:", err)
return
}
defer rFile.Close()
// Creating csv reader
reader := csv.NewReader(rFile)
lines, err := reader.ReadAll()
if err == io.EOF {
fmt.Println("Error:", err)
return
} else {
}
totalResults=len(lines)
}
它总是说没有声明值,这似乎太简单了
如果我使用:=
声明它,我很确定它会起作用,但我想声明函数顶部的所有内容。更改代码:
lines, err := reader.ReadAll()
if err == io.EOF {
fmt.Println("Error:", err)
return
} else {
}
totalResults=len(lines)
}
致:
为什么要在函数顶部声明它?通常,除了JavaScript之外,所有c-ish语言的大多数样式指南都建议声明尽可能接近其使用点的变量。只需说
var totalResults int=len(lines)
。我无法重现这个错误。事实上,我用这段代码得到的错误是totalResults
被声明而没有使用。您确定没有误读错误消息吗?
lines, err := reader.ReadAll()
if err == io.EOF {
totalResults=len(lines)
} else {
fmt.Println("Error:", err)
return
}
fmt.Println("total results:", totalResults)
}