Go语言常量完全手册 const用法看这一篇就够了

简介: Go语言常量完全手册 const用法看这一篇就够了

常量是一个编程语言的基础组成之一,Go 语言中通过 const 关键字来定义常量。合理利用常量可以让程序更简洁可读、节省内存并可能提高效率。

本文将详细介绍 Go 语言中常量的定义方法、常量生成器 iota、枚举定义、Untyped 常量以及常量的最佳实践,并通过大量示例代码来辅助讲解。阅读本文可以全面掌握 Go 语言中的常量用法。

1

 

一、const 关键字

Go 语言使用 const 关键字来定义常量,形式为:

const constantName = value

例如:

const PI = 3.14
const WIDTH = 1920

常量在定义后不能再修改。

2

 

二、多重常量定义

const 支持同时定义多个常量:

const (
  NAME = "张三"
  GENDER = "male" 
)

同时定义多个相关常量。

3

 

三、iota 常量生成器

const 中可以使用 iota 自动生成序列常量:

const (
  x = iota // x == 0
  y        // y == 1
  z        // z == 2
)

iota 从 0 开始依次+1 生成常量。

4

 

四、iota CASE 使用

iota 常和 case 表达式配合使用:

const (
  x = iota // 0
  y = 10
  z = iota // 2
)

跳过不需要的值。

5

 

五、定义枚举

可以利用 iota 和 case 定义枚举:

const (
  Jan = iota // 0
  Feb        // 1
  Mar        // 2
)

6

 

六、Untyped 常量

不指定类型的常量叫 Untyped 常量,可以作不同类型使用:

const Pi = 3.14
var x float32 = Pi
var y float64 = Pi
7
七、常量组合
定义常量组可以重复使用已有的常量,避免重复代码:

7

 

七、常量组合

定义常量组可以重复使用已有的常量,避免重复代码:

const (
  x = 100
  y = 200
)
const (
  a = x * 2 
  b = y * 3
)

8

 

八、常量优化

常量与之前的值比较后,编译器会在编译期做优化。

9

 

九、最佳实践

  • 精简代码,避免魔术数字
  • 枚举可替代硬编码的状态
  • 复用常量组合声明

通过合理利用常量可以使代码可读性更好,也提高效率。

10

 

总结

const 关键字是 Go 语言规范定义常量的方式。熟练使用常量可以使程序更简洁优雅。


目录
相关文章
|
20天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
32 7
|
20天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
20天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
93 71
|
19天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67
|
20天前
|
存储 Go
go语言中映射
go语言中映射
32 11
|
21天前
|
Go 索引
go语言修改元素
go语言修改元素
27 6
|
12天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
03-Go语言基础-常量与运算符
常量的定义 常量的值在编译时就已经确定 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数
677 0
|
22天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
91 62
|
24天前
|
并行计算 安全 Go
Go语言中的并发编程:掌握goroutines和channels####
本文深入探讨了Go语言中并发编程的核心概念——goroutine和channel。不同于传统的线程模型,Go通过轻量级的goroutine和通信机制channel,实现了高效的并发处理。我们将从基础概念开始,逐步深入到实际应用案例,揭示如何在Go语言中优雅地实现并发控制和数据同步。 ####