Go 语言变量
- Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的一般形式是使用 var 关键字:
package main
import "fmt"
func main() {
// 声明一个变量并初始化
var a string = "Runoob"
fmt.Println(a) // 结果:Runoob
// 没有初始化就为零值
var b int
fmt.Println(b) // 结果:0
// 可以一次声明多个变量:
var b, c int = 1, 2
fmt.Println(b, c) // 结果:1 2
}
变量声明:
第一种,指定变量类型,如果没有初始化,则变量默认为零值。
- 数值类型(包括complex64/128)为 0
- 布尔类型为 false
- 字符串为 “”(空字符串)
第二种,根据值自行判定变量类型。
package main
import "fmt"
func main() {
var d = true
fmt.Println(d)
}
第三种,使用 := 省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误
package main
import "fmt"
func main() {
f := "Runoob" // var f string = "Runoob"
fmt.Println(f)
var intVal int
intVal :=1 // 这时候会产生编译错误
intVal,intVal1 := 1,2 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句
}
多变量声明:
类型相同多个变量, 非全局变量
// 不需要显示声明类型,自动推断
var vname1, vname2, vname3 = v1, v2, v3
// 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
vname1, vname2, vname3 := v1, v2, v3
声明全局变量:
// 这种因式分解关键字的写法一般用于声明全局变量
var (
a int
b bool
)
Go 语言常量
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
显式类型定义: const b string = "abc"
隐式类型定义: const b = "abc"
- 多个相同类型的声明可以简写为:
const c_name1, c_name2 = value1, value2
-
常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
-
iota
- 特殊常量,可以认为是一个可以被编译器修改的常量。
- iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
- iota 可以被用作枚举值