变量进阶:
1.多重赋值(从左至右依次匹配,如果有不需要的数据用匿名变量处理)
2.匿名变量 ( _ )下划线 :丢弃数据不处理
匿名变量主要用于配合函数返回值使用
注:go语言的函数返回值可以有多个,使用匿名变量可以舍去不需要的返回值
package main
import "fmt"
//go函数可以返回多个值
func test() (a, b, c int) {
return 1, 2, 3
}
//入口函数main函数
func main() { //左括号必须与函数名同行
//多重赋值
a, b := 10, 20
fmt.Printf("a = %d , b = %d\n", a, b)
//等价与
/*
a := 10
b := 20
*/
//用多重赋值交换a和b的值
a, b = b, a
fmt.Printf("a = %d , b = %d\n", a, b)
//匿名变量( _ ) 丢弃数据不处理,
var x, y, z int
x, y, z = test()
fmt.Println(x, "+", y, "+", z)
//只需要中间那一个返回值
var pw int
_, pw, _ = test()
fmt.Println(pw)
}
常量:(变量关键字:var 常量关键字:const)
常量必须在定义时赋值 不能就行二次赋值 否者会报错
iota枚举:用于特殊情况下的常量赋值,可以更方便特殊情况下的常量赋值
1、iota常量自动生成器 每个一行,自动累加1
2、只能给常量赋值使用
3、itoa在程序运行刚才中遇到const重置为0
4、可以只写一个itoa
5、在同一行的iota数值相同
package main
import "fmt"
//入口函数main函数
func main() { //左括号必须与函数名同行
//常量:程序运行期间不能改变的量
//变量关键字:var 常量关键字:const
const a int = 10
// a = 20 报错,常量不允许修改
const b int = 0
/*
const b int 报错
b = 10 报错
由此可以看出 常量必须在定义时赋值
不能就行二次赋值
*/
fmt.Println(b)
//注释快捷键 ctrl+/
//多变量和常量定义
var (
x int
y float64
)
x, y = 1, 2.1
fmt.Println(x, "+", y)
const (
i int = 10
j float64 = 3.14
)
fmt.Println(i, "+", j)
//iota常量自动生成器 每个一行,自动累加1
//只能给常量赋值使用
const (
a0 = iota //0
b0 = iota //1
c0 = iota //2
)
fmt.Println(a0, "+", b0, "+", c0)
//itoa在程序运行刚才中遇到const重置为0
const d0 = iota
fmt.Println(d0)
//可以只写一个itoa
const (
a1 = iota
b1
c1
/*
一般情况下 变量名后面会接数据类型
如果没接,那么go语言会自动推导类型
*/
)
fmt.Println(a1, "+", b1, "+", c1)
//在同一行的iota数值相同
const (
i0 = iota
j1, j2, j3 = iota, iota, iota
k0 = iota
)
fmt.Println(j1, "+", j2, "+", j3)
}
复习:
cmd命令行:go run 和 go build
变量定义时的自动推导类型 ( := )常量不可
go语言函数可以有多个返回值