【Go-1】变量&常量定义

说明

本文介绍 Go 语言中,变量&常量定义与作用域

变量定义

变量定义有以下三种方式

go 复制代码
func main() {
	// 1.先声明,再赋值
	var name string
	name = "小何"
	fmt.Print(name)

	// 2.1.声明并赋值
	var age int = 18
	fmt.Print(age)

	// 2.2.简写
	var height = 1.75
	fmt.Print(height)

	// 3.省略var关键字
	sex := "男"
	fmt.Print(sex)
}

定义多个变量如下

go 复制代码
	// 方式一
	var a, b, c = 1, 2, 3
	fmt.Print(a, b, c)
	
	// 方式二
	d, e, f := 4, 5, 6
	fmt.Print(d, e, f)
	
	// 方式三
	var (
		g = 7
		h = 8
		i = 9
	)
	fmt.Print(g, h, i)

常量定义

常量指而不能被再次赋值的变量,使用 const 定义,如下

go 复制代码
// 方式一
const version string = "1.0.0"
// 简写
const name = "小何"

// 方式二
const (
	name = "小何"
	age  = 18
)

作用域

变量作用域分为全局、局部,简单区分如下:

  • 全局:花括号外面的;

  • 局部:花括号里面的;

另外,需要注意的是,全局变量有以下特点:

  • 只能用声明并赋值的方式定义;

  • 变量允许定义不使用;

如下

跨包访问

跨包访问的变量、函数名,首字母要大写,否则编译不通过

go.mod

go.mod 文件,记录该项目的模块信息、Go 版本信息,如果有跨包访问的情况,必须需要有该文件

如下,

相关推荐
愚农搬码1 小时前
电子表单、动态表单、表单设计器和表单引擎到底有什么区别?
java·后端
挖掘狂人1 小时前
Redis 为什么快?把 "存内存" 这句话拆开看
redis·后端·性能优化
CarIise1 小时前
Spring 框架AOP与 XML 基础
java·开发语言
Moment1 小时前
DeepSeek 发布新模型,直接把 Agent 联网搜索的门槛打下来了!
前端·后端
geovindu1 小时前
rust:N-Barrier Pattern
开发语言·后端·设计模式·rust·屏障模式·并发型模式
AI宇宙狂想家2 小时前
开源 AI 视频工具进化史:从难用到好用,OpenMontage 改了什么
开发语言·前端·人工智能·开源·ai创业·openmontage
努力的小雨2 小时前
Milvus知识库PDF导入失败怎么办?10分钟看懂异常日志排查
后端
Rain的Java大神之路2 小时前
「设计一个在线文档协同编辑系统」:从 WebSocket、OT/CRDT 到快照回放,一篇讲透这道面试顶流题
java·后端·面试
codigger2 小时前
Redis 为什么快?把 "存内存" 这句话拆开看
redis·后端·性能优化·程序员