变量介绍
什么是变量?
> 变量是程序中用来**存储数据的容器**。
> 它有一个名称(标识符)和一个类型,用来保存可变的数据值。
简单类比:变量就像带名字的盒子,你可以往里面放数据,也可以随时拿出来用,还可以更换里面的内容。
Go 中变量的特点
Go 是静态强类型语言:变量声明时就必须确定类型(或让编译器推断)
Go 支持多种变量声明方式
go 变量不可以重新定义
支持 类型推导 和 一次声明多个变量
声明赋值使用写法
package main
import "fmt"
func main(){
//变量声明;类型
var age int
//变量赋值
age = 18
//变量使用
fmt.Println("小明年龄",age) //逗号做拼接
}
执行
PS D:\golang\goproject> go run src\src01\demo1\main0.go
小明年龄 18
声明赋值合成一句
var age int = 19 //声明赋值合成一句
fmt.Println("小明年龄",age) //逗号做拼接
执行结果
PS D:\golang\goproject> go run src\src01\demo1\main0.go
小明年龄 19
变量不可以重新定义
var age int = 19 //声明赋值合成一句
fmt.Println("小明年龄",age) //逗号做拼接
var age int = 9
fmt.Println("小红年龄",age)
结果
# command-line-arguments
src\src01\demo1\main0.go:11:6: age redeclared in this block
src\src01\demo1\main0.go:9:6: other declaration of age
变量类型与值的类型不同也不可以
var num int = 12.7 fmt.Println(num) 执行结果 PS D:\golang\goproject> go run src\src01\demo1\main0.go # command-line-arguments src\src01\demo1\main0.go:16:16: cannot use 12.7 (untyped float constant) as int value in variable declaration (truncated)
变量的默认值
//1变量使用方式 var mun int =18 fmt.Println(mun) //2 变量没有赋初始值,默认整数型默认是0 var mun2 int fmt.Println(mun2) 执行结果 18 0
变量的类型推导
//类型推导 var mun3 = 20 fmt.Println(mun3) // 类型推导 (简写)省略var 。注意:= 不能写成= mun4 := 9 fmt.Println(mun4) 执行结果 20 9
一次性声明多个变量
var n1,n2,n3 int
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
var n4,name,n5 = 10,"jak",7.8
fmt.Println(n4)
fmt.Println(name)
fmt.Println(n5)
n6,n7 := 18.7,18
fmt.Println(n6)
fmt.Println(n7)
执行结果
0
0
0
10
jak
7.8
18.7
18
全局变量定义:定义在{}外面,定义在{}里的叫局部变量
package main
import "fmt"
//全局变量 : 定义在函数外
var n8 = 100
var n9 = 123.5
//全局变量一次性申请
var (
n10 = 45
n11 = "晨曦"
)
func main(){
//1变量使用方式
var mun int =18
fmt.Println(mun)
//2 变量没有赋初始值,默认整数型默认是0
var mun2 int
fmt.Println(mun2)
//类型推导
var mun3 = 20
fmt.Println(mun3)
// 类型推导 (简写)省略var 。注意:= 不能写成=
mun4 := 9
fmt.Println(mun4)
var n1,n2,n3 int
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
var n4,name,n5 = 10,"jak",7.8
fmt.Println(n4)
fmt.Println(name)
fmt.Println(n5)
n6,n7 := 18.7,18
fmt.Println(n6)
fmt.Println(n7)
//全局变量的调用
fmt.Println(n8)
fmt.Println(n9)
fmt.Println(n10)
fmt.Println(n11)
}
执行结果
PS D:\golang\goproject> go run D:\golang\goproject\src\src01\demo2\main.go
18
0
20
9
0
0
0
10
jak
7.8
PS D:\golang\goproject> go run D:\golang\goproject\src\src01\demo2\main.go
18
0
20
9
0
0
0
10
jak
7.8
18.7
18
PS D:\golang\goproject> go run D:\golang\goproject\src\src01\demo2\main.go
18
0
20
9
0
0
0
10
jak
7.8
18.7
18
100
123.5
45
晨曦
草都可以从石头缝隙中长出来更可况你呢

浙公网安备 33010602011771号