Go学习笔记之变量和常量
hnxxwyq · · 3029 次点击 · · 开始浏览1 变量
1-1 声明
在 Go 语言中声明变量使用关键字 var
例如
var int_a int; // 多数情况下分号可以省略
在声明的同时没有初始化值时,Go 会给基础类型设置默认值,
int 0
int8 0
int32 0
int64 0
uint 0x0
rune 0 //rune的实际类型是 int32
byte 0x0 // byte的实际类型是 uint8
float32 0 //长度为 4 byte
float64 0 //长度为 8 byte
bool false
string ""
声明的同时也可以赋值初始化,例如
var int_a int =1
声明同时赋值可以简单缩写为
int_a := 1
1-2 多个相同类型的声明
多个相同类型的声明可以简写为
var a, b, c int
也可以同时赋值
var a, b, c int = 1, 2, 3
也可以简写为
a, b, c := 1, 2, 3
1-3 多个不同类型的声明
多个不同类型的声明可以简写为
var (
a int
b string
)
也可以同时赋值
var (
a int = 1
b string = "abc"
)
1-4 特殊的空标识 _
任何赋值空标识 _ 的都会丢弃,一般用来做返回值有多个值时,但可能只用到其中的几个,只保留用到值,其他的值可以舍弃。
a, _, c := 1, 2, 3
数值 2 会被丢弃掉
2 常量
2-1 声明
在 Go 语言中声明变量使用关键字 const,常量的值只能是 bool、string 或数字类型中的一种。
例如
const a int = 1
因为声明常量必须初始化,所以type可以省略,即
const a = 1
2-2 多个相同类型的声明
多个相同类型的声明可以简写为
const a, b = 1, 2
2-3 多个不同类型的声明
多个不同类型的声明可以简写为
const (
a = 1
b = "abc"
c = false
)
2-4 特殊的关键字iota
Go里面有一个关键字iota,这个关键字用来声明enum的时候采用,它默认开始值是0,每调用一次加1
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
iota也可以参与运算,例如
const (
a = 1 << iota // a = 1 (iota has been reset) 1*2^0
b = 1 << iota // b = 2 1*2^1
c = 1 << iota // c = 4 1*2^2
)
参考资料
《Go语言.云动力》
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
1 变量
1-1 声明
在 Go 语言中声明变量使用关键字 var
例如
var int_a int; // 多数情况下分号可以省略
在声明的同时没有初始化值时,Go 会给基础类型设置默认值,
int 0
int8 0
int32 0
int64 0
uint 0x0
rune 0 //rune的实际类型是 int32
byte 0x0 // byte的实际类型是 uint8
float32 0 //长度为 4 byte
float64 0 //长度为 8 byte
bool false
string ""
声明的同时也可以赋值初始化,例如
var int_a int =1
声明同时赋值可以简单缩写为
int_a := 1
1-2 多个相同类型的声明
多个相同类型的声明可以简写为
var a, b, c int
也可以同时赋值
var a, b, c int = 1, 2, 3
也可以简写为
a, b, c := 1, 2, 3
1-3 多个不同类型的声明
多个不同类型的声明可以简写为
var (
a int
b string
)
也可以同时赋值
var (
a int = 1
b string = "abc"
)
1-4 特殊的空标识 _
任何赋值空标识 _ 的都会丢弃,一般用来做返回值有多个值时,但可能只用到其中的几个,只保留用到值,其他的值可以舍弃。
a, _, c := 1, 2, 3
数值 2 会被丢弃掉
2 常量
2-1 声明
在 Go 语言中声明变量使用关键字 const,常量的值只能是 bool、string 或数字类型中的一种。
例如
const a int = 1
因为声明常量必须初始化,所以type可以省略,即
const a = 1
2-2 多个相同类型的声明
多个相同类型的声明可以简写为
const a, b = 1, 2
2-3 多个不同类型的声明
多个不同类型的声明可以简写为
const (
a = 1
b = "abc"
c = false
)
2-4 特殊的关键字iota
Go里面有一个关键字iota,这个关键字用来声明enum的时候采用,它默认开始值是0,每调用一次加1
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
iota也可以参与运算,例如
const (
a = 1 << iota // a = 1 (iota has been reset) 1*2^0
b = 1 << iota // b = 2 1*2^1
c = 1 << iota // c = 4 1*2^2
)
参考资料
《Go语言.云动力》