Go语言的变量和常量
2019-11-15 本文已影响0人
VienFu
1. 变量
1.1 变量声明
变量声明的标准格式:
var <变量名称> <变量类型>
变量名称的首字母大小写则决定该变量可否被外部引入,变量类型Go语言中支持很多种比如常见的int、string、bool、byte、float32等。
除了标准格式的声明外,还有两种带初始化的变量声明:
var <变量名称> = <变量值>
,会根据初始化变量具体的值来确定变量的类型,且使用范围没有限制;
<变量名称> := <变量值>
,简短模式的变量声明且带有显式初始化,不过这种方法仅限于在函数内部使用;
另外,变量的声明还支持如下的使用形式:
// 同时声明同一类型的多个变量
var a, b int
// 支持批次声明
var (
a int
b string
help bool
array0 [10]int
slice0 []int
)
1.2 变量初始化
关于变量的初始化方法其实上面变量声明中已经基本上都已经涉及到了,还要一种对应标准格式的初始化方法:
var <变量名称> <变量类型> = <变量值>
最后注意,一旦变量被声明之后,在Go的内存中其实都已经被初始化了,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil等。
2 常量
go语言的常量通常使用const
关键字来声明,并且常量的数据类型只可以是布尔型、数字型和字符串型,一般的定义格式如下:
const 变量名称 [变量类型] = 变量值
,跟变量相比,一般常量除了由关键字var
--> const
外,定义规则基本上跟变量保持一致,另外常量还支持枚举类型,比如:
const (
UNKNOWN = 400
SUCCESS = 200
ERROR = 500
)
并且常量可以用函数计算表达式的值,不过这些函数必须是go的内置函数,否则编译不过。
特殊常量iota
常量声明可以使用 iota 常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。在一个 const 声明语句中,在第一个声明的常量所在的行,iota 将会被置为 0,然后在每一个有常量声明的行加一,下面看几个相关的例子:
- Example1
const (
a = iota //a=0
b //b=1
c //c=2
d //d=3
e = "welcome"
f
g = iota
h
i
)
- Example2
const (
a = 1 << iota // a=1
b = 3 << iota // b=6
c //c=12
d //d=24
)