? 变量是相当于内存中一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量可以访问到变量(值)。
声明变量(有人也叫定义变量)
//基本语法:var 变量名 数据类型
//注意:golang的语法结尾没有分号;
var a int //这既是声明了一个变量,变量名是a
var num1 float32
初始化变量
//在声明变量的时候,就给值。
var a int = 45//这就是初始化变量a
赋值
var num int = 20
num = 780//给变量赋值
使用
变量表示内存中的一个存储区域。
该区域有自己的名称(变量名)和类型(数据类型)。
该区域的数据值可以在同一类型范围内不断变化
var i int = 10
i = 30
i = 50
fmt.Println("i=",i)
i = 1.2 //报错,原因是不能改变数据类型
变量在同一个作用域(在一个函数或者在代码块)内不能重名。
变量=变量名+值+数据类型,这一点要注意。
go的变量如果没有赋初值,编译器会使用默认值(零值),比如int默认值为0,string默认值为空串
第一种:指定变量类型,声明后若不赋值,使用默认值。
var i int
fmt.Printf("i=%v", i)
第二种:根据值自行判断变量类型(类型推导)。
var num = 10.11
fmt.Printf("num=%v", num)
第三种:省略var,注意::=方式声明,只能在在函数内部,否则会导致编译错误。
name := "Tom"
fmt.Printf("My name is %v", name)
在编程中,有时我们需要一次性声明多个变量,Golang也提供这样的语法。
方式一:
var n1, n2, n3 int = 2, 3, 4
fmt.Println("n1=",n1,"n2=",n2,"n3=",n3)
方式二:
var n1,name,n3 = 100 ,"alia", 883
fmt.Println("n1=",n1,"name=",name,"n3=",n3)
方式 三:
n1,name,n3 := 100 ,"tom", 883
fmt.Println("n1=",n1,"name=",name,"n3=",n3)
? 在go中国函数外部定义变量就是全局变量
? 方式一:
//定义去安居变量
var n1 = 100
var n2 = 200
var name = "jack"
func main(){
//输出全局变量
fmt.Println("n1=",n1,"n2=",n2,"name=",name)
}
? 方式二:
var (
n3 = 300
n4 = 900
name2 = "marry"
)
func main(){
//输出全局变量
fmt.Println("n3=",n3,"n4=",n4,"name2=",name2)
}
原文:https://www.cnblogs.com/anticipate/p/14730580.html