文章目录

  • ​​注意事项!​​
  • ​​全局变量:声明方式整理​​
  • ​​局部变量:声明方式整理​​

注意事项!

1、全局变量/常量允许声明但不使用,局部变量/常量声明后必须使用,不然报错:a declared but not used

2、如果你想要交换两个变量的值,则可以简单地使用 a, b = b, a,两个变量的类型必须是相同

3、空白标识符 _ 也被用于抛弃值,_ 实际上是一个只写变量,如值 5 在:_, b = 5, 7 中被抛弃

4、const 声明常量,var 声明变量, := 简写形式默认是声明变量

5、常量表达式中,函数必须是内置函数,否则编译不过,例如:

const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a)
)

6、const 常量自动赋值,iota 从 0 开始,每赋值一个 iota,则 iota 加 1(iota 只是在同一个 const 常量组内递增,每当有新的 const 关键字时,iota 计数会重新开始)

const (
a = iota //0
b = iota //1
c = iota //2
)

也可简写为

const (
a = iota //0
b //1
c //2
)

iota 间隔赋值,等价于当前 const 内部的赋值语法行的索引

const (
a = 2
c = iota //1
b = 2
d = iota //3
)

【Go语言】变量/常量使用注意事项,iota 的特性,局部、全局变量/常量声明方式详细整理_全局变量

7、const 常量若不赋值,会默认使用紧邻上一行的值,若上一行没有值,则报错

const (
a = 1
b //默认使用上面的值 1
)

同理,也可以推广为

const (
a = 0
b //默认使用上面的值 1
c = 2
d //默认使用上面的值 2
)

全局变量:声明方式整理

//=====方式 1
//var x int = 2

//=====方式 2
//var a, b int = 1, 2

//=====方式 3
//var a, b = 1, 2

//=====方式 4
//var a, b = 1, "b"

//=====方式 5
//var (
// a int = 1
// b int = 2
//)

//=====方式 6
//var (
// a = 1
// b = 2
//)

局部变量:声明方式整理

//=====方式 1
//var x int
//x = 2

//=====方式 2
//var x int = 2

//=====方式 3
//x := 2

//=====方式 4
//var a, b int = 1, 2

//=====方式 5
//var a, b = 1, 2

//=====方式 6
//var a, b = 1, "b"

//=====方式 7
//a, b := 1, 2

//=====方式 8(一般用于声明全局变量)
//var (
// a int = 1
// b int = 2
//)

//=====方式 9(一般用于声明全局变量)
//var (
// a = 1
// b = 2
//)