变量介绍

什么是变量?
> 变量是程序中用来**存储数据的容器**。
> 它有一个名称(标识符)和一个类型,用来保存可变的数据值。
简单类比:变量就像带名字的盒子,你可以往里面放数据,也可以随时拿出来用,还可以更换里面的内容。
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
晨曦

  

 

 

 

 

 

posted @ 2025-07-31 12:57  烟雨楼台,行云流水  阅读(33)  评论(0)    收藏  举报