Go语言基础:常量与变量详解
Go语言中的常量指在程序执行期间不可修改的固定值,变量则是用于存储数据的命名存储区域。本文梳理了Go中常量(整数、浮点、字符串及转义序列)的定义规范,以及变量的声明方式(显式类型与短变量运算符推断),结合代码实例帮助读者快速掌握基础语法。
结果或目标
理解Go语言的常量与变量机制,能够正确使用 const 关键字定义常量,并通过 var 或 := 运算符声明和初始化变量,同时区分不同数据类型的表示法。
准备条件
- 已安装 Go 环境(如 Go 1.17+)。
- 基本的文本编辑器或 IDE(如 VS Code)。
- 了解基础的命令行操作,以便编译运行代码。
真实操作顺序
第1步:掌握常量的定义与表示
目的: 定义程序中不需要改变的数据,提升代码可读性与安全性。
动作与参数: 使用 const 关键字,后接变量名、类型(可选)和值。Go 支持多种数值常量格式:
- 整型常量: 支持十进制、八进制(前缀 0)和十六进制(前缀 0x/0X)。后缀可包含 U(无符号)、L(长整型)等组合,但不允许重复。
- 浮点常量: 包含小数部分或指数部分(e/E)。形式如 3.14159 或 314159E-5L。
- 字符串与转义: 字符串用双引号包裹。可使用反斜杠 \ 开头的转义序列,如
\t(制表符)、\n(换行)。
常用转义序列参考:

代码示例:定义并使用常量
package main
import "fmt"
func main() {
// 使用 const 定义常量
const LENGTH int = 10
const WIDTH int = 5
// 测试转义字符
fmt.Printf("Hello\tWorld!\n")
// 计算面积
var area int
area = LENGTH * WIDTH
fmt.Printf("value of area : %d\n", area)
}
第2步:学习变量的基本声明
目的: 创建可被程序操作的内存空间来存储数据。
入口与动作: Go 是静态类型语言,变量定义需指定类型。标准语法为 var name type。也可以一次性声明多个同类型变量。
重要参数:
var:声明关键字。type:如 int, float64, string, byte 等。若未指定类型,编译器可能报错或要求后续赋值时推断。
代码示例:显式类型声明
package main
import "fmt"
func main() {
var x float64
x = 20.0
fmt.Println(x)
fmt.Printf("x is of type %T\n", x) // %T 输出具体类型
}
第3步:应用类型推断(动态声明)
目的: 简化声明过程,减少冗余代码,让编译器自动识别变量类型。
动作: 使用短变量声明运算符 :=。这是 Go 中最常用的变量定义方式,尤其在函数内部。它要求必须同时提供初始值。
代码示例:类型推断混合声明
package main
import "fmt"
func main() {
// 静态声明
var a float64 = 20.0
// 动态推断:根据值 42 自动判断为 int
b := 42
// 混合不同类型的一次性声明
var c, d, e = 3, 4, "hello"
fmt.Printf("a type: %T, b type: %T, c type: %T\n", a, b, c)
}
完成判断
当你能成功编写并运行上述代码,且控制台正确打印出预期的数值、类型(%T)结果(如 x is of type float64)以及格式化后的字符串时,即表明已掌握 Go 常量与变量的核心用法。
原文有依据的排错
如果尝试将数值直接赋给字面量(如 10 = 20),编译器会抛出错误。这是因为左值(lvalue,如变量名)必须是可修改的内存位置,而右值(rvalue,如数字字面量)仅仅是数据值,不能作为赋值的目标。
注意: 原稿中提到的 Go 基本变量类型图示如下:

简要总结
Go语言通过对常量(不可变)和变量(可变)的严格类型管理,确保了程序的稳健性。开发时应优先使用 const 定义不变量,在函数内利用 := 进行简洁的类型推断,而在包级别或需要明确控制时则使用 var 显式声明。以上就是Go语言基础中常量与变量的详细内容,更多关于Go编程入门的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









