Go语言变量

1、概念

变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名访问,Go 语言变量名由字母、数字、下划线组成,只能以字母或下划线开头。

程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。

变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个宾馆的门牌号,通过门牌号我们可以找到宾馆房间,因此,在变量中,通过变量名可以访问到变量(值)。

声明变量的一般形式是使用var关键字:

var 变量名 变量类型

可以一次声明多个变量:

var 变量名1, 变量名2 变量类型

变量(Variable)的功能是存储数据。不同的变量保存的数据类型可能会不一样。常见变量的数据类型有:整型、浮点型、布尔型等。

2、变量使用步骤

1)声明变量(也叫定义变量)

2)变量赋值

3)使用变量

3、变量定义的几种方式

1)第一种方式:标准声明

var 变量名 变量类型

1
2
3
4
5
6
7
8
9
10
package main

import "fmt"

func main() {
var i int
i = 1234
//使用变量
fmt.Println("i=", i)
}

2)第二种方式:指定变量类型,声明后不赋值

注意:如果声明变量不赋值,会使用默认值

1
2
3
4
5
6
7
8
package main

import "fmt"

func main() {
var i int
fmt.Println("i=", i)
}

3)第三种方式:声明变量的时候指定初始值

1
2
3
4
5
6
7
8
package main

import "fmt"

func main() {
var i int = 666
fmt.Println("i=", i)
}

4)第四种方式:类型推导

有时候我们会将变量的类型策略省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化

1
2
3
4
5
6
7
8
package main

import "fmt"

func main() {
var i = 888
fmt.Println("i=", i)
}

5)第五种方式:短变量声明

在函数内部,可以使用更简略的 := 方式声明并初始化变量

1
2
3
4
5
6
7
8
9
package main

import "fmt"

func main() {
a := 1
b := 2
fmt.Println("a=", a, "b=", b)
}

6)第六种方式:一次声明多个变量

在编程中,有时候我们需要一次性声明多个变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import "fmt"

//定义全局变量
var a = 1
var b = 2
var c = 3
var name = "tom"

func main() {
//定义局部变量,一次性声明多个变量
var n1 int
var name3 string
var age string

//输出全局变量
fmt.Println("a=", a, "b=", b, "c=", c, "name=", name)

//输出局部变量
fmt.Println("n1=", n1, "name3=", name3, "age=", age)

}

7)匿名变量声明

在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"

func foo() (int, string) {
return 68, "test"
}
func main() {
x, _ := foo()
_, y := foo()
a, b := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
fmt.Println("a=", a, "b=", b)
}


x= 68
y= test
a= 68 b= test