爲什麼需要變量:
- 變量是程序的基本組成單位
不論是使用哪種高級程序語言編寫程序,變量都是其程序的基本組成單位,比如:下面代碼中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。
-
程序中+號的使用
1)當左右兩邊都是數值型時,則做加法運算;
2)當左右兩邊都是字符串時,則做字符串拼接;package main import "fmt" //演示golang中+號的使用 func main() { var i = 1 var j = 2 var r = i + j //做加法運算 fmt.Println("r=", r) var str1 = "hello" var str2 = "world" var res = str1 + str2 //做拼接操作 fmt.Println("res=", res) } D:\goproject\src\go_code\chapter02\demon04>go run main.go r= 3 res= helloworld