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
",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。

原文地址:https://www.cnblogs.com/louyefeng/p/11316834.html