Simple integer declaration in Golang

huangapple go评论118阅读模式
英文:

Simple integer declaration in Golang

问题

我不认为自己是个新手,但是我无法弄清楚为什么这个非常简单的代码片段无法声明我的整数变量。

  1. func main() {
  2. var totalResults int
  3. rFile, err := os.Open("users.csv") //3列
  4. if err != nil {
  5. fmt.Println("错误:", err)
  6. return
  7. }
  8. defer rFile.Close()
  9. // 创建csv读取器
  10. reader := csv.NewReader(rFile)
  11. lines, err := reader.ReadAll()
  12. if err == io.EOF {
  13. fmt.Println("错误:", err)
  14. return
  15. } else {
  16. }
  17. totalResults = len(lines)
  18. }

它总是说该值未声明,这看起来太简单了。

我很确定如果我使用:=来声明它,它会起作用,但我想在函数的顶部声明所有变量。

英文:

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.

  1. func main () {
  2. var totalResults int
  3. rFile, err := os.Open("users.csv") //3 columns
  4. if err != nil {
  5. fmt.Println("Error:", err)
  6. return
  7. }
  8. defer rFile.Close()
  9. // Creating csv reader
  10. reader := csv.NewReader(rFile)
  11. lines, err := reader.ReadAll()
  12. if err == io.EOF {
  13. fmt.Println("Error:", err)
  14. return
  15. } else {
  16. }
  17. totalResults=len(lines)
  18. }

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

修改你的代码:

  1. lines, err := reader.ReadAll()
  2. if err == io.EOF {
  3. totalResults = len(lines)
  4. } else {
  5. fmt.Println("Error:", err)
  6. return
  7. }
  8. fmt.Println("total results:", totalResults)

修改后的代码将在读取完所有行后,根据错误类型进行处理。如果错误类型是io.EOF,表示已经读取到文件末尾,此时可以计算出总行数totalResults。如果错误类型不是io.EOF,则打印错误信息并返回。最后,输出总行数totalResults

英文:

change your code:

  1. lines, err := reader.ReadAll()
  2. if err == io.EOF {
  3. fmt.Println("Error:", err)
  4. return
  5. } else {
  6. }
  7. totalResults=len(lines)
  8. }

to:

  1. lines, err := reader.ReadAll()
  2. if err == io.EOF {
  3. totalResults=len(lines)
  4. } else {
  5. fmt.Println("Error:", err)
  6. return
  7. }
  8. fmt.Println("total results:", totalResults)
  9. }

huangapple
  • 本文由 发表于 2017年7月10日 07:52:17
  • 转载请务必保留本文链接:https://go.coder-hub.com/45002130.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定