英文:
Simple integer declaration in Golang
问题
我不认为自己是个新手,但是我无法弄清楚为什么这个非常简单的代码片段无法声明我的整数变量。
func main() {
var totalResults int
rFile, err := os.Open("users.csv") //3列
if err != nil {
fmt.Println("错误:", err)
return
}
defer rFile.Close()
// 创建csv读取器
reader := csv.NewReader(rFile)
lines, err := reader.ReadAll()
if err == io.EOF {
fmt.Println("错误:", err)
return
} else {
}
totalResults = len(lines)
}
它总是说该值未声明,这看起来太简单了。
我很确定如果我使用:=
来声明它,它会起作用,但我想在函数的顶部声明所有变量。
英文:
I didn't consider myself to be a newbie, but I can't figure out why this very simple code snippet fails to declare my integer.
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)
}
It always says the value is not declared, this seems too simple.
I'm pretty sure it would work if I declared it using :=
, but I wanted to declare everything at the top of the function.
答案1
得分: 0
修改你的代码:
lines, err := reader.ReadAll()
if err == io.EOF {
totalResults = len(lines)
} else {
fmt.Println("Error:", err)
return
}
fmt.Println("total results:", totalResults)
修改后的代码将在读取完所有行后,根据错误类型进行处理。如果错误类型是io.EOF
,表示已经读取到文件末尾,此时可以计算出总行数totalResults
。如果错误类型不是io.EOF
,则打印错误信息并返回。最后,输出总行数totalResults
。
英文:
change your code:
lines, err := reader.ReadAll()
if err == io.EOF {
fmt.Println("Error:", err)
return
} else {
}
totalResults=len(lines)
}
to:
lines, err := reader.ReadAll()
if err == io.EOF {
totalResults=len(lines)
} else {
fmt.Println("Error:", err)
return
}
fmt.Println("total results:", totalResults)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论