廣州網(wǎng)站建設(shè)推廣公司上海網(wǎng)站建設(shè)公司
1. 變量的多重賦值
????????1.1 基本語(yǔ)法格式? ? ??
????????go語(yǔ)言中,可以將多個(gè)賦值語(yǔ)句 合并成 一句,比如:
a := 10
b := 20
c := 30//a,b,c三個(gè)變量的賦值語(yǔ)句可以簡(jiǎn)練成以下格式a, b, c := 10, 20, 30
???????1.2?交換變量值? ? ??
? ? ? ? 當(dāng)需要交換兩個(gè)變量的值時(shí),在傳統(tǒng)方法中,需要引入中間變量temp,但是,在go語(yǔ)言中,變量值的交換可以簡(jiǎn)化為以下格式:
i, j = j, i
????????該語(yǔ)法格式對(duì) i,j 兩個(gè)變量的值進(jìn)行了交換,j 的值賦給了 i,i 的值賦給了 j。?
例如以下代碼:
package main //必須有main包import "fmt"func main() {// a := 10// b := 20// c := 30a, b := 20, 30fmt.Println("1.傳統(tǒng)方法:")fmt.Printf("a = %d, b = %d\n", a, b)/*交換兩個(gè)變量的值*///1. 傳統(tǒng)方法: 引入中間變量 tmpvar tmp inttmp = aa = bb = tmpfmt.Printf("a = %d, b = %d\n", a, b)//2. go語(yǔ)言中語(yǔ)法 // i := 10// j := 20i, j := 10, 20 //將上面兩個(gè)賦值語(yǔ)句 合并成 一句fmt.Println("2. go語(yǔ)言中語(yǔ)法:")fmt.Printf("交換前:i = %d, j = %d\n", i, j)i, j = j, ifmt.Printf("交換后:i = %d, j = %d\n", i, j)}
2. 匿名變量的使用
????????_ :代表匿名變量,可以丟棄數(shù)據(jù)不處理,
? ? ? ? 注:_匿名變量配合函數(shù)返回值使用,才有優(yōu)勢(shì)
package main //必須有main包import "fmt"// go函數(shù)可以返回多個(gè)返回值
func test() (a, b, c int) {return 1, 2, 3
}func main() {var tmp inti, j := 10, 20//匿名變量i = 10j = 20// _ :代表匿名變量,丟棄數(shù)據(jù)不處理, _匿名變量配合函數(shù)返回值使用,才有優(yōu)勢(shì)tmp, _ = i, jfmt.Println("tmp = ", tmp)var c, d, e intc, d, e = test() //return 1, 2, 3fmt.Printf("c = %d, d = %d, e = %d\n", c, d, e)//只需要某一個(gè)值_, d, _ = test() //return 1, 2, 3fmt.Printf("d = %d\n", d)//需要某兩個(gè)值_, d, e = test() //return 1, 2, 3fmt.Printf("d = %d, e = %d\n", d, e)}