Go中变量声明和赋值注意事项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main

import "fmt"

//全局变量

var a int = 1
var b, c int = 2, 3

var a1 int
var b1, c1 int

//报错:
//a1 = 1
//b1, c1 = 2, 3

//报错:
//a1 := 1
//b1, c1 := 2, 3

var a2 = "a2"
var b2, c2 = "b2", "c2"

var (
a3 int = 2
b3 string
c3 float32
)

func main() {
a1 = 1
b1, c1 = 2, 3
a3, b3, c3 = 1, "2", 3
fmt.Println(a1, b1, c1, a3, b3, c3)

fmt.Println("////////")

//局部变量
var x = 1
y, z := 2, 3
fmt.Println(x, y, z)

//仅声明或赋值但是未使用,下面几种情况都会报错:
//var xyz = 1

//yxz := 1

//var zxy int
//zxy = 1

//var xzy int = 1
}

知识点总结

  • 全局变量可以允许仅声明/赋值,但是可以不使用
  • 局部变量不管以何种方式声明/赋值,必须要使用
  • 局部变量在作用范围内会替代掉同名的全局变量
  • 全局变量的声明和赋值操作不能分开进行
  • := 操作符只能在函数体内部使用
  • 任何变量不可以被重复声明

intVal := 1 等价于下面的两行代码:

1
2
var intVal int 
intVal =1

空白标识符_在函数返回时的用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"

func main() {
_,numb,strs := numbers() //只获取函数返回值的后两个
fmt.Println(numb,strs)
}

//一个可以返回多个值的函数
func numbers()(int,int,string){
a , b , c := 1 , 2 , "str"
return a,b,c
}

输出结果

1
2 str
文章作者: GeYu
文章链接: https://nuistgy.github.io/2023/12/25/golangbase2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog