欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Go语言变量与常量 -《Go语言实战指南》

Go语言变量与常量 -《Go语言实战指南》

2025/5/13 8:36:13 来源:https://blog.csdn.net/tenkofx/article/details/147778354  浏览:    关键词:Go语言变量与常量 -《Go语言实战指南》

在Go语言中,变量与常量是构建程序最基本的组成部分。本章将带你掌握变量和常量的声明方式、使用方法以及注意事项,打牢语言基础。


一、变量(Variable)

1.1 变量声明

Go语言支持多种变量声明方式:

方式一:标准声明
var a int
a = 10
方式二:同时赋初值
var b int = 20
方式三:类型推导(推荐)
var c = 30  // Go自动推导为int类型
方式四:短变量声明(只能在函数内部)
d := 40  // 自动推导类型

❗ := 是声明+赋值,不能重复声明已有变量。

1.2 多变量声明
var x, y, z int = 1, 2, 3

也可以混合类型:

var (name string = "Go"age  int    = 14flag bool   = true
)
1.3 零值(默认值)

Go会自动为未初始化的变量赋“零值”:

类型零值
数字型0
布尔型false
字符串型""
指针/引用nil

二、常量(Constant)

常量在声明时必须赋值,且值不能在运行时改变。

2.1 基本声明方式
const Pi = 3.14
const Name string = "GoLang"
2.2 多常量声明
const (A = 1B = "hello"C = true
)
2.3 枚举常量与 iota

iota 是Go的常量计数器,在每个 const 块中从0开始递增:

const (Red = iota  // 0Green       // 1Blue        // 2
)

也可以做位运算:

const (Read  = 1 << iota  // 1 << 0 = 1Write              // 1 << 1 = 2Execute            // 1 << 2 = 4
)

三、变量与常量的区别

项目变量常量
是否可变
必须赋值否(有零值)
使用位置全局/局部全局/局部
类型推导支持支持
典型用途临时状态数据配置/控制标识符

四、注意事项

  • • := 不能用于全局变量声明,只能在函数内部使用;
  • • 常量不能使用函数返回值初始化;
  • • 不使用的变量会导致编译错误(Go强调代码整洁);
  • • 常量间可进行类型转换和运算,但不能赋给变量再变更。

五、实践示例

package mainimport "fmt"const (Monday = iota + 1TuesdayWednesday
)func main() {var name = "Go"age := 15const version = "1.21"fmt.Println("Language:", name)fmt.Println("Age:", age)fmt.Println("Version:", version)fmt.Println("Weekdays:", Monday, Tuesday, Wednesday)
}

输出:

Language: Go
Age: 15
Version: 1.21
Weekdays: 1 2 3

六、小结

  • • 变量是可变的数据容器,支持显式声明和类型推导;
  • • 常量用于存放不可变值,支持 iota 实现自增枚举;
  • • := 是Go特有的语法糖,但仅限于函数内部使用;
  • • 常量和变量一样支持批量声明,代码更整洁;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词