Go变量和常量
Go变量
- Go的变量和C一样, 都是要求必须是字母,数字, 下划线组成, 且数字不能开头, 变量区分大小写, 并且变量名字不可以和关键字重名
- Go的关键字大部分如下图:
Go变量的声明
- Go变量声明是如下的语法
var 变量的名称 变量的类型
例如:
var param int
- Go变量只声明不进行赋值默认是0
注意:
Go的语法要求很严格, 变量声明之后不使用这在c++之中顶多就是个warning, 但是在Go之中就会报错, package也是如此, 这点需要注意
- 同一个作用域之内变量不可以重复声明
- 范例代码
package main
import "fmt"
func main() {
var param int
fmt.Println("param = ", param)
param = 100
fmt.Println("param = ", param)
}
Go变量的初始化
- 初始化就是声明的时候同时进行赋值
语法如下:
var 变量名称 变量类型 = 变量值
- Go之中还有和python类似的自动推断类型初始化, 语法如下:
变量名称 := 变量值
- 范例代码:
package main
import "fmt"
func main() {
var param int = 10
fmt.Println("param = ", param)
param2 := 100
fmt.Println("param2 = ", param2)
}
Go多重赋值
- Go变量的赋值和python一样, 可以多重赋值, 例:
package main
import "fmt"
func main() {
var param1, param2 int
param1, param2 = 10, 10
fmt.Println(param1, param2)
}
- Go变量的初始化也是可以多重初始化的:
package main
import "fmt"
func main() {
param1, param2 := 10, 10
fmt.Println(param1, param2)
}
Go匿名变量
- Go之中有一类非常特殊的变量, 叫做匿名变量, 就是一个单下划线, 常和函数结合在一起使用
- 匿名变量无法打印值, 否则会报如下的错误:
cannot use _ as value
Go常量
- var是变量, const就是常量, 常量在声明的时候必须初始化
- 常量的自动类型推断只需要 = , 不需要:=
package main
import "fmt"
func main() {
const param int = 10
fmt.Println(param)
const param2 = 10.0
fmt.Println(param2)
}
- 如果用:=, 会报如下错误:
syntax error: unexpected :=, expecting =
Go多重声明
- 先看代码:
package main
import "fmt"
func main() {
var (
param1 int = 1
param2 float64 = 2.0
)
fmt.Println(param1, param2)
const (
param3 int = 10
param4 float64 = 10.0
)
fmt.Println(param3, param4)
}
- 多重声明就是同时声明多个变量或者常量, 这些var/const可以是不同数据类型的
- 声明的形式就是在()之中进行声明