为什么需要变量:
- 变量是程序的基本组成单位
不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如:下面代码中sum、sub都是变量。func getVal(num1 int, num2 int) (int, int) { sum := num1 + mum2 sub := num1 - num2 return sum, sub } func main() { sum, sub := getVal(30, 30) fmt.Println("sum=", sum, "sub=", sub) sum2, _ := getVal(10, 30) fmt.Println("sum=", sum2) }
变量的介绍:
- 变量的概念
变量相当于内存中一个数据存储空间的表示,可以把变量看做是一个房间的门牌号,通过门牌号可以找到房间,同样的道理,通过变量名可以访问到变量(值)。 - 变量的使用步骤
1)定义变量
2)给变量赋值
3)使用变量package main import "fmt" func main() { //定义变量 var i int //给i赋值 i = 10 //使用变量 fmt.Println("i=",i) } D:\goproject\src\go_code\chapter02\demon01>go run main.go i= 10
变量使用注意事项:
- 变量表示内存中的一个存储区域;
- 该区域有自己的名称(变量名)和类型(数据类型);
- Golang变量使用的三种方式:
1)第一种,指定变量类型,定义后若不赋值,使用默认值;package main import "fmt" func main() { //golang的变量使用方式 //第一种:指定变量类型,定义后若不赋值,使用默认值 //init的默认值是0 var i int fmt.Println("i=", i) } D:\goproject\src\go_code\chapter02\demon02>go run main.go i= 0
2)第二种,根据值自行判断变量类型(类型引导)
package main import "fmt" func main() { //第二种:根据值自行判断变量类型(类型推导) var num = 10.11 fmt.Println("num=", num) } D:\goproject\src\go_code\chapter02\demon02>go run main.go num= 10.11
3)第三种,省略var定义变量并赋值
package main import "fmt" func main() { //第三种:省略var,:= 的:不能省略,否则报错 //下面的方式等价于 var name string name = "tom" name := "tom" fmt.Println("name=", name) } D:\goproject\src\go_code\chapter02\demon02>go run main.go name= tom
-
多变量定义
1)在编程中,有时我们需要一次性定义多个变量,Golang也提供了这样的语法【在函数里面定义】package main import "fmt" func main() { //该案例演示Golang如何一次性定义多个变量 var a1, a2, a3 int fmt.Println("a1=", a1, "a2=", a2, "a3=", a3) //一次性定义多个变量的方式二 var b1, b2, b3 = 100, "tom", 888 fmt.Println("b1=", b1,"b2=", b2,"b3=", b3) //一次性定义多个变量的方式三,同样可以使用类型推导 c1, name, c3 := 200, "mary", 999 fmt.Println("c1=", c1,"name=", name,"c3=", c3) } D:\goproject\src\go_code\chapter02\demon03>go run main.go a1= 0 a2= 0 a3= 0 b1= 100 b2= tom b3= 888 c1= 200 name= mary c3= 999
2)一次性定义全局变量【在go中函数外部定义变量就是全局变量】
package main import "fmt" //定义全局变量 var n1 = 100 var n2 = 200 var name = "jack" //上面的定义方式,也可以改成一次性定义 var ( n3 = 300 n4 = 400 name2 = "zhangsan" ) func main() { fmt.Println("n1=", n1,"n2=", n2,"name=", name) fmt.Println("n3=", n3,"n4=", n4,"name2=", name2) } D:\goproject\src\go_code\chapter02\demon03>go run var.go n1= 100 n2= 200 name= jack n3= 300 n4= 400 name2= zhangsan
- 该区域的数据值可以在同一类型范围内不断变化
package main import "fmt" func main() { //该区域的数据值可以在同一类型范围内不断变化 var i int = 10 i = 30 i = 50 fmt.Println("i=", i) } D:\goproject\src\go_code\chapter02\demon03>go run var02.go i= 50
- 变量在同一个作用域(在一个函数或者代码块)内不能重名;
- 变量的三要素
变量=变量名+值+数据类型 - Golang的变量如果没有赋初值,编译器会使用默认值,比如,int默认值为0;string默认值为空串;小数默认值为0。
有疑问加站长微信联系(非本文作者)