For loop 已声明但未使用的变量

For loop 已声明但未使用的变量,for-loop,go,For Loop,Go,我正在尝试学习围棋,但当我尝试一个简单的for循环时,我发现很难让它工作。如果我在主函数中定义变量a,则此代码不会编译,它会给出一个错误“a已声明但未使用”。我不明白什么时候必须声明变量,什么时候不能声明。谢谢 package main import "fmt" func main() { for a:=0;a<4;a++ { fmt.Printf("value of a is %d\n",a) } 主程序包 输入“fmt” func m

我正在尝试学习围棋,但当我尝试一个简单的for循环时,我发现很难让它工作。如果我在主函数中定义变量a,则此代码不会编译,它会给出一个错误“a已声明但未使用”。我不明白什么时候必须声明变量,什么时候不能声明。谢谢

package main

import "fmt"

func main() {   


    for a:=0;a<4;a++ {      
        fmt.Printf("value of a is %d\n",a)
}
主程序包
输入“fmt”
func main(){

对于a:=0;a来说,出现“未使用的错误”的原因是因为表达式
a:=0
在循环的作用域中声明了一个同名的新变量。如果在循环之前已经声明了变量“a”,则将其更改为
对于a=0;a出现“未使用的错误”的原因是表达式
a:=0>在循环的作用域中声明具有相同名称的新变量。如果在循环之前已声明变量“a”,请将其更改为a=0的
;a您有两个可用选项

  • 显式声明变量,然后使用

    var a int
    a = 0
    
  • 在一条语句中声明和赋值,而不必指定类型(它是推断的)


  • 请注意
    =
    :=
    之间的区别。如果您使用
    :=
    两次,它将被视为重新声明。换句话说,
    =
    仅用于赋值,而
    :=
    用于在一个步骤中进行声明和赋值。

    您有两个选项可用

  • 显式声明变量,然后使用

    var a int
    a = 0
    
  • 在一条语句中声明和赋值,而不必指定类型(它是推断的)


  • 请注意
    =
    :=
    之间的区别。如果您使用
    :=
    两次,它将被视为重新声明。换句话说,
    =
    仅用于赋值,而
    :=
    用于在单个步骤中进行声明和赋值。

    代码末尾缺少一个右括号
    。添加它按预期工作。好的,抱歉,复制错误。但是关于声明变量,什么时候应该声明变量,什么时候不应该声明变量呢?代码末尾缺少一个右括号
    }
    。添加它按预期工作。好的,抱歉,复制错误。但是关于声明变量,什么时候应该声明变量,什么时候不应该声明变量呢?