变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间
一、变量声明
go语言通过var
关键字来声明变量,与Java和其他语言不同的是将数据类型放在变量名后,变量名不能重复
var a int
var b [10]int
var c string
//还可以这样使用来同时声明多个变量
var{
d int
e string
}
二、声明变量并进行初始化
var a string = "hello world"
var b = "hello world" //可以不注明类型,go会进行类型推断
c := "hello world" //这样也是可以的,同样会进行类型推断
:=
这符号真的第一次见 ,但是要注意不能对声明过的变量名用这个符号,会报错的
package main
import "fmt"
func main(){
var a int = 8
a := 9 //这里其实相当于又声明了一个变量a 变量名是不能重复声明的
fmt.Println(a);
}
下图是上面示例代码的错误信息,可以看到报错信息为在第7行,没有在:=
左边声明一个新的变量
三、变量的赋值
//简单的变量赋值
var a int
a = 6
//go变量互换的语法
x, y = y, x // 这样会交换 x,y的值
四、匿名变量
这里先说一下go语言中函数的语法
func 函数名(变量名 变量类型,变量名 变量类型,......)(返回值列表){
......//内部执行逻辑
}
举个例子,一个函数返回多个值,有时候我们可能只需要一个值,这时候我们可以使用匿名变量
package main
import "fmt"
func main(){
//我们需要函数的全部返回值的情况
name, age, address := GetPerson()
fmt.Printf("%s 今年 %d 岁 ,住在 %s \n", name, age, address)
//有时,我们可能只需要name,这样我们就可以用_来代替变量接收,这样可以避免
myname,_,_ := GetPerson()
fmt.Println("我叫 " + myname)
}
func GetPerson()(name string, age int, address string){
return "Damon", 20, "China"
}
运行结果
五、变量的类型
说了这么多,还没有说go变量的类型
- 基础数据类型:
- 布尔类型:bool
- 整型:int8、byte、int、int16、uint、uintptr
- 浮点类型:float32、float64
- 复数类型:complex64、complex128
- 字符串:string
- 字符:rune
- 错误类型:error
- 复合类型
- 指针(pointer)
- 数组(array)
- 切片(slice)
- 字典(map)
- 通道(chan)
- 结构体(struct)
- 接口(interface)
好了,今天就先分享到这里啦