在计算机,运行中程序数据一般都是存放在内存中,而在内存中,数据是以二进制格式存放,操作不方便, 故此使用名字来操作内存。程序运行时,可以修改的数据。
规则:由数字、字母和下划线组成,但不能以数字开头
go
使用var
关键字来定义变量或使用:=
自动推导类型
var 变量名 [变量类型]
var 变量名 [变量类型] = 初始值 //定义并初始化
变量名 := 初始值 //自动推导类型
var (
变量名 [变量类型]
变量名 [变量类型] = 初始值 //定义并初始化
)
int类型默认值为0,string默认为空字符串,bool默认值为false,rune字符类型,输出的是整形,如需输出字符,使用%c
多重赋值就是多个变量同时赋值;在接受函数的多个返回值时经常用到。
//多重赋值
A, B, C := 1, 2, 3
fmt.Println(A, B, C)
//匿名变量,使用 _ 表示
A, _ = B, A //将B的值赋值给A,A的值赋值给匿名变量,在函数多个返回值时经常用到
fmt.Println(A, B)
变量是由
地址
和变量内容
两部分组成的;获取一个变量的内容,需要先找到该变量存放地址,这也解释了引用变量的作用, 引用变量是允许使用多个名字来操作同一个变量内容。
普通变量和引用变量区别:
普通变量:拥有自己的地址和内容
引用变量:允许使用多个名字来操作同一个变量内容,指向同一个地址
package main
import "fmt"
func main(){
var a int //整形
var b string //字符串
var c float32 //浮点型
var d float64 //浮点型
var e rune //字符
var f bool //布尔
var g struct{} //结构体
var h interface{} //接口类型,万能类型
var i byte //字节
k := 1 //自动推导类型 int
fmt.Printf("a = %v\n", a)
fmt.Printf("b = %v\n", b)
fmt.Printf("c = %v\n", c)
fmt.Printf("d = %v\n", d)
fmt.Printf("e = %v,%c\n", e, e)
fmt.Printf("f = %v\n", f)
fmt.Printf("g = %v\n", g)
fmt.Printf("h = %v\n", h)
fmt.Printf("i = %v\n", i)
fmt.Printf("k = %v\n", k)
}