作者:看那个码农
公众号:看那个码农
上期内容介绍了编写第一个Go程序|Go主题月
- Go语言的集成开发环境(IDE)的安装
- 编写第一个Go程序
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
本篇将介绍
- Go语言的变量
- 如何声明变量
- 初始化变量
- 多个变量同时赋值
- 匿名变量的使用
2.Go语言的变量
我们学过编程的人都知道,变量的功能是用来存储用户的数据信息,根据环境的需求度,我们需要声明不同的变量类型。
常见变量的数据类型有整型、浮点型、布尔型、结构体等.
3.如何声明变量
Go语言的每一个变量都拥有自己的变量类型,必须声明后才能使用。
1.标准格式
Go语言声明变量的格式为:
var 变量名 变量类型
例如下面案例:
#声明整数类型变量
var a int
Go语言在变量声明过程中以关键词var开头,后面是变量类型,中间和每行末尾不需要添加分号。
2.批量声明变量
当然如果觉得一个个声明变量太麻烦,可以批量声明变量
例如下面案例:
var (
a int
b string
)
可以进行批量声明变量
3.初始化变量
Go语言在声明变量时,会自动对变量对应的内存区域进行初始化操作,每个变量会初始化其类型的默认值。
例如
- 整型和浮点型变量的默认值是0
- 字符串变量的默认值为空字符串
- 布尔型变量的默认值为false
- 切片、函数、指针变量的默认值为null
1.标准初始化格式
var 变量名 类型 =表达式
例如下面案例:
将变量a初始值设置为10。
var a int = 10
上面代码中,10和int同为int类型。
int会被认为是冗余信息,因此可以进一步优化初始化的写法。
2.优化后的初始化写法
var a =10
在标准初始化格式基础上,将int省略,
Go语言的编译器会尝试根据等号右边的表达式推导a变量的类型。
等号右边的部分在编译原理中被称为“右值”
例如下面案例:
package main
import "fmt"
func main(){
var a = 20
var b = 10
var c float32 = 0.17
var end =float32(a-b) * c
fmt.Println(end)
}
- 第4行和第5行,右值为整型,a和b的变量类型为int
- 在对c声明变量的时候,右值中使用了0.17,声明了float32的数据类型
- 默认情况下,如果不指定c变量的类型,Go语言编译器会将c的数据类型推导为float64。由于本例用不到那么精确的精度,所以强制指定类型为float32
- 将a和b相减后的数值结果依然为整型,使用float32将结果强制转换为了float32类型,再与float32类型的c相乘后,end的类型也是float32类型
- 最后fmt.Println(end),输出最后结果的值
3.短变量声明并初始化
var的变量声明还有一种更为简单的写法,
例如下面案例:
a :=100
这个是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型
由于使用了":=",而不是赋值的“=”,
因此推导声明中左值变量必须是没有定义过的变量。
若定义过,将会发生编译错误。
例如下面案例:
package main
import "fmt"
func main(){
var a int
a :=10
fmt.Println(a)
}
输出为
4.多个变量同时赋值
例如同时为a,b,c进行赋值 可以采用短变量声明的方法进行同时赋值
例如下面案例:
package main
import "fmt"
func main(){
a,b,c:=1,2,3
fmt.Println(a,b,c)
}
输出为
5.匿名变量
在使用多重赋值的时候,如果不需要在左值中接收变量,可以使用匿名变量
匿名变量的表现形式为一个“_”下划线,使用匿名变量时,只需要在变量声明的时候用下划线替换即可
例如下面案例:
package main
import "fmt"
func main(){
a,b,_:=1,2,3
_,b,c:=1,2,3
fmt.Println(a,b,c)
}
输出为:
匿名变量不占用命名空间,不会分配内存,匿名变量与匿名变量之间也不会因为多次声明而无法使用。
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情