【Go】7、golang常量
- 常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等
1、定义常量的语法
- 定义一个常量使用const关键字,语法格式如下:
const constantName [type] = value
# const 定义常量关键字
# constantName:常量名称
# type: 常量类型
# value:常量的值
- 举例:
package main
import (
"fmt"
)
func main() {
// 定义常量
const PI float32 = 3.14
const PI2 = 3.1415 // 可以省略类型
// 批量定义
const (
a = 100
b = 200
)
// 多重赋值
const w, h = 200, 300
}
- const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
package main
import (
"fmt"
)
func main() {
// 同时申明多个常量,如果省略了值则表示和上面一行的值相同
const (
a1 = 100
a2
a3
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
}
# 输出结果:
a1: 100
a2: 100
a3: 100
2、iota
- iota比较特殊,可以被认为是一个可被编译器修改的常量,它默认开始值为0,每调用一次加1,遇到const关键字时被重置为0
- 举例:
package main
import (
"fmt"
)
func main() {
// iota
const (
a1 = iota
a2 = iota
a3 = iota
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
const a4 = 100
const a5 = iota // 重0开始
fmt.Printf("a4: %v\n", a4)
fmt.Printf("a5: %v\n", a5)
}
# 输出结果
a1: 0
a2: 1
a3: 2
a4: 100
a5: 0
- 使用_跳过某些值
package main
import (
"fmt"
)
func main() {
// _ 跳过
const (
a1 = iota // 0
_ // 1
a2 = iota // 2
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
}
# 输出结果:
a1: 0
a2: 2
- iota声明中间插件
package main
import (
"fmt"
)
func main() {
// 中间插队
const (
a1 = iota //0
a2 = 100
a3 = iota // 1
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
}
# 输出结果:
a1: 0
a2: 100
a3: 2
本文来自博客园,作者:郭祺迦,转载请注明原文链接:https://www.cnblogs.com/guojie-guojie/p/16355557.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏