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 := 30
a, b := 20, 30
fmt.Println("1.传统方法:")
fmt.Printf("a = %d, b = %d\n", a, b)
/*交换两个变量的值*/
//1. 传统方法: 引入中间变量 tmp
var tmp int
tmp = a
a = b
b = tmp
fmt.Printf("a = %d, b = %d\n", a, b)
//2. go语言中语法
// i := 10
// j := 20
i, j := 10, 20 //将上面两个赋值语句 合并成 一句
fmt.Println("2. go语言中语法:")
fmt.Printf("交换前:i = %d, j = %d\n", i, j)
i, j = j, i
fmt.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 int
i, j := 10, 20
//匿名变量
i = 10
j = 20
// _ :代表匿名变量,丢弃数据不处理, _匿名变量配合函数返回值使用,才有优势
tmp, _ = i, j
fmt.Println("tmp = ", tmp)
var c, d, e int
c, d, e = test() //return 1, 2, 3
fmt.Printf("c = %d, d = %d, e = %d\n", c, d, e)
//只需要某一个值
_, d, _ = test() //return 1, 2, 3
fmt.Printf("d = %d\n", d)
//需要某两个值
_, d, e = test() //return 1, 2, 3
fmt.Printf("d = %d, e = %d\n", d, e)
}