2.变量声明

go中常见的变量声明方式

Go 复制代码
var a int32
var s string
var i = 13
n := 17
var (
	crlf = []byte("\r\n")
	colonSpace = []byte(": ")
)

go中的变量分为2种:

1.包级变量:在package级别可见的变量,如果是导出的变量,也叫全局变量

2.局部变量:在函数和方法体内声明的变量,仅在函数和方法体内可见

1.包级变量的声明

包级变量只能使用var关键字进行声明,但是可以 声明并初始化 和 声明但延迟初始化

声明并初始化

如下所示,声明变量的同时也初始化变量,可以指定类型,也可以不指定类型,依赖编译器自动推断。

Go 复制代码
var x1 = 1
var x2 int = 1
var x3 = int(1)

声明但延迟初始化

如下所示,声明变量,但是并不做初始化,此时需要指定变量的类型,这也说明了go是强类型的静态语言,虽然这里没有初始化,但是go中有"零值可用"的概念,即y1和y2的值是对应类型的初始值,int就是0,bool就是false

Go 复制代码
var y1 int
var y2 int

声明聚类

将多个声明语句放到一个var块中

Go 复制代码
var (
	z1     = 1
	z2 int = 2
	z3     = int(3)
)

2.局部变量的声明

局部变量在函数和方法内定义并可见,声明方式也分为2种,声明并初始化 和 声明但延迟初始化

声明但延迟初始化

下面展示了声明但延迟初始化,定义了m1没有初始化时,m1的值就是int的零值

Go 复制代码
func main() {
	// 2.1 延迟初始化
	var m1 int
	fmt.Printf("m1 = %v\n", m1)
	m1 = 128
	fmt.Printf("m1 = %v\n", m1)
}

声明并初始化

下面展示了声明并初始化,使用短声明方式定义,这是比较建议的声明并初始化方式,也可以使用var声明和初始化使用

Go 复制代码
	m2 := 1
	m3 := float64(3.14)
	fmt.Printf("m2 = %v, m3 = %v\n", m2, m3)

声明聚类

同样的,对于局部变量,在函数和方法内部,也可以通过var块将一组变量声明放在一起

相关推荐
新新学长搞科研几秒前
【广东省博促会主办】2026年第七届先进材料与智能制造国际学术会议(ICAMIM 2026)
大数据·前端·数据库·人工智能·物联网
铁皮饭盒4 分钟前
用bunjs代码讲解XSS/CSRF/SQL注入/DDos等10种前后端安全防护
前端·后端
swordbob6 分钟前
Spring事务失效的场景
java·开发语言·spring
hhb_6189 分钟前
TypeScript泛型实战:企业级请求封装全解析
javascript·ubuntu·typescript
琹箐12 分钟前
chrome 插件下载安装;Manifest file is missing or unreadable
前端·chrome
云飞云共享云桌面12 分钟前
面向机械研发:双服务器架构搭配云飞云运行 SolidWorks 方案详解
运维·服务器·前端·网络·架构·制造
catchadmin21 分钟前
PHP 在领域驱动(DDD)设计中的核心实践
开发语言·php
乐兮创想 小林26 分钟前
B2B 内容营销的工程化运营:从内容矩阵建模到 SEO/GEO 联动的完整体系
前端·线性代数·矩阵·网站建设·北京网站建设公司
2501_9400417426 分钟前
全栈开发提速指南:可以直接用的项目生成提示词
前端·prompt
BomanGe228 分钟前
NSK直线导轨LH55EL与NH55EM替代指南
前端·javascript·数据库·经验分享·规格说明书