pythonav.com
首页
知识库
免费视频
项目实战
每天20道面试题
登录
注册
# 变量 变量,其实就相当于给某个值设置一个`昵称`,此`昵称`代指当前值。 在Go中变量声明的基本格式为:`var 变量名 类型 = 值` ,例如: ```go // 声明一个字符串类型的变量name,值为 "武沛齐" var name string = "武沛齐" // 生命一个整型类型的变量age,值为 18 var age int = 18 ``` ## 1. 变量简写 为了能让变量的声明更方便,Go还提供了一些生命变量的简化方式。 - 省略类型,格式为:`var 变量名 = 值` ```go var name = "武沛齐" var age = 18 // 在给变量赋值时已知值的类型,所以Go编译器自动可以自动检测到类型,故可简化编写。 ``` - 省略var关键字,格式为:`变量名 := 值` (推荐) ```go name := "武沛齐" age := 18 ``` 上述两种简化编写的方式必须是直接赋值操作,即:直接将值赋值给变量,否则无法简化。例如:先声明再赋值时候就不能使用简化方式编写了。 ```go // 声明变量 var name string // 给变量赋值 name = "武沛齐" ``` 注意:如果变量只声明不赋值,Go内部其实会给变量默认设置值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 。 容器 ## 2.变量名要求 对于变量名有以下要求和建议: - 要求(必须遵守,否则报错) - 变量名由字母、数字、下划线组成,且首个字符不能为数字。 - 不能使用Go内置的25个关键字 ``` break、default、func、interface、select、case、defer、go、map、struct、chan、else、goto、package、switch、const、fallthrough、if、range、type、continue、for、import、return、var ``` - 建议 - 变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:`numShips` 和 `startDate`。 - 见名知意,通过变量名就可以知道变量所代指的值,例如:`name`、`email`。 ## 3.全局和局部变量 根据变量所在位置不同,变量有全局和局部之分。 ### 3.1 全局变量 ```go package main import "fmt" // 声明全局变量 var country string = "中国" // 或可使用 var country = "中国" // 不可使用 country := "中国" func main() { fmt.Println(country) country = "China" fmt.Println(country) } ```
特别提醒
:Go中的全局变量比较特殊,如果全局变量名首字母小写,则只能被当前包中的go文件使用,外部无法使用;如果首字母大写,则任意文件都使用全局变量。 可简单理解为:首字母大写表写公有,首字母小写表示私有(当前包的go文件所有)。 ### 3.2 局部变量 Go中的变量有作用域之分,每个大括号就是一个作用域,每个作用域中都可定义相关的局部变量。 ```go package main import ( "fmt" ) func main() { // 声明局部变量,在当前函数可用 var name string = "武沛齐" fmt.Println(name) if true { // 生命局部变量,在当前if中可用 var age = 18 fmt.Println(age) } // 报错,age在if括号的作用域中 // fmt.Println(age) } ``` ## 4.因式分解 在定义多个变量时候,可以通过因式分解的方式进行简化代码。 ```go package main import "fmt" /* var name = "武沛齐" var age = 18 var gender string */ // 在全局使用 var ( name = "武沛齐" age = 18 gender string ) func main() { fmt.Println(name) fmt.Println(age) gender = "男" fmt.Println(gender) // 在局部使用 var ( x1 = 123 x2 = 456 ) fmt.Println(x1) fmt.Println(x2) } ```
用户评论
登录
或
注册
后才能发表评论
目录
第一节 开篇介绍
第二节 环境搭建
第三节 Goland
第四节 Goland激活
第五节 快速上手
第六节 基础入门
第七节 变量
Go数据类型
Go String型
Go指针
Go Array数组
Go Slice切片
Go Map哈希表
Go Struct结构体
Go 循环控制
Go函数
Go方法
Go接口
Go并发
回复