Go 变量和常量
Go变量
Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字
变量声明语法一般使用var关键字:
var identifier type
//一次声明多个变量
var identifier1, identifier2 type
identifier为变量名,type为变量类型
也可以不声明变量类型,Go根据值自行判定变量类型
如:
package main
import "fmt"
func main(){
var num = 10
fmt.Printf("值为:%v, 类型为:%T",num,num)
}
输出结果:
值为:10, 类型为:int
省略var关键字,使用 := 来声明变量
如:
v_name := value
如果 := 左侧没有声明新的变量,就会产生编译错误,错误信息为:"no new variables on left side of :=",如:
var i1 int
i1 := 10 // 编译错误,:= 左侧没有新的变量
i1, i2 := 1, 2 // 编译通过,:= 左侧有新的变量
Go常量
常量就是再程序运行时,不会被修改得量。
常量在Go中的定义格式:
const identifier [type] = value
使用const关键字来声明常量,type可以省略不写,编译器会自动根据值来判断变量类型。
案例:
package main
import "fmt"
func main(){
const PI float64 = 3.14
fmt.Printf("PI的值为: %v\n",PI)
}
常量也可以用作枚举:
const (
Unknown = 0
Female = 1
Male = 2
)
iota关键字
iota时一个特殊常量,是一个可以被编译器修改的常量。
iota在const关键字出现时将被重置为0,const中每新增一行常量声明就会使iota计数一次,可以简单的理解为const语句快中的行索引。案例:
const (
a = iota
b = iota
c = iota
)
第一个iota等于0,后面每多一行常量声明,他的值就会自动加1,所以a,b,c对应的值就是0,1,2。