1. 变量的多重赋值
1.1 基本语法格式
go语言中,可以将多个赋值语句 合并成 一句,比如:
a := 10
b := 20
c := 30//a,b,c三个变量的赋值语句可以简练成以下格式a, b, c := 10, 20, 30
1.2 交换变量值
当需要交换两个变量的值时,在传统方法中,需要引入中间变量temp,但是,在go语言中,变量值的交换可以简化为以下格式:
i, j = j, i
该语法格式对 i,j 两个变量的值进行了交换,j 的值赋给了 i,i 的值赋给了 j。
例如以下代码:
package main //必须有main包import "fmt"func main() {// a := 10// b := 20// c := 30a, b := 20, 30fmt.Println("1.传统方法:")fmt.Printf("a = %d, b = %d\n", a, b)/*交换两个变量的值*///1. 传统方法: 引入中间变量 tmpvar tmp inttmp = aa = bb = tmpfmt.Printf("a = %d, b = %d\n", a, b)//2. go语言中语法 // i := 10// j := 20i, j := 10, 20 //将上面两个赋值语句 合并成 一句fmt.Println("2. go语言中语法:")fmt.Printf("交换前:i = %d, j = %d\n", i, j)i, j = j, ifmt.Printf("交换后:i = %d, j = %d\n", i, j)}
2. 匿名变量的使用
_ :代表匿名变量,可以丢弃数据不处理,
注:_匿名变量配合函数返回值使用,才有优势
package main //必须有main包import "fmt"// go函数可以返回多个返回值
func test() (a, b, c int) {return 1, 2, 3
}func main() {var tmp inti, j := 10, 20//匿名变量i = 10j = 20// _ :代表匿名变量,丢弃数据不处理, _匿名变量配合函数返回值使用,才有优势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)//只需要某一个值_, d, _ = test() //return 1, 2, 3fmt.Printf("d = %d\n", d)//需要某两个值_, d, e = test() //return 1, 2, 3fmt.Printf("d = %d, e = %d\n", d, e)}