[TOC]
# 常量
常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。
比如 Pi 、e 、G 等变量都是固定。
声明并赋值 pi 变量,在整个程序运行期间值不可以别改变
```go
const pi = 3.1415
// pi = 3.14156 // 非法,常量不允许修改
```
批量声明常量
```go
const (
pi = 3.1415
e = 2.7182
g = 9.8
)
```
批量声明常量。不写值的话,该值与上一个常量的值一致
```go
const (
a = 100 // 100
b // 100
c = 50 // 50
d // 50
)
```
# iota
iota 是 **常量** 计数器,const 第一次出现 iota 赋值为 0。后续每一行添加都自增+1,类似const的索引。使用iota能简化定义,在定义枚举时很有用。
>[info] 注意:iota出现后,下面不存在iota也会自增+1。中间有其他变量插入,需要重新赋值 iota 。否则是上一个常量的值
示例1
```go
const (
num1 = iota
num2
num3
)
```
示例2
```go
const (
num1 = iota // 0
num2 // 1
_
num3 // 3
)
```
示例3
```go
const (
num1 = iota // 0
num2 = 50 // 50
num3 // 50
)
```
示例4
```go
const (
num1 = iota // 0
num2 = 50 // 50
num3 = iota // 2
num4 // 3
)
```
示例5
```go
const (
a, b = iota + 1, iota + 2 // 1, 2
c, d // 2, 3
e, f // 3, 4
)
```
- Golang简介
- 开发环境
- Golang安装
- 编辑器及快捷键
- vscode插件
- 第一个程序
- 基础数据类型
- 变量及匿名变量
- 常量与iota
- 整型与浮点型
- 复数与布尔值
- 字符串
- 运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 流程控制语句
- 获取用户输入
- if分支语句
- for循环语句
- switch语句
- break_continue_goto语法
- 高阶数据类型
- pointer指针
- array数组
- slice切片
- slice切片扩展
- map映射
- 函数
- 函数定义和调用
- 函数参数
- 函数返回值
- 作用域
- 函数形参传递
- 匿名函数
- 高阶函数
- 闭包
- defer语句
- 内置函数
- fmt
- strconv
- strings
- time
- os
- io
- 文件操作
- 编码
- 字符与字节
- 字符串
- 读写文件
- 结构体
- 类型别名和自定义类型
- 结构体声明
- 结构体实例化
- 模拟构造函数
- 方法接收器
- 匿名字段
- 嵌套与继承
- 序列化
- 接口
- 接口类型
- 值接收者和指针接收者
- 类型与接口对应关系
- 空接口
- 接口值
- 类型断言
- 并发编程
- 基本概念
- goroutine
- channel
- select
- 并发安全
- 练习题
- 第三方库
- Survey
- cobra