Go语言学习之声明变量|Go主题月

440 阅读4分钟

作者:看那个码农

公众号:看那个码农

上期内容介绍了编写第一个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)
}

输出为

image.png

4.多个变量同时赋值

例如同时为a,b,c进行赋值 可以采用短变量声明的方法进行同时赋值

例如下面案例:

package main
import "fmt"
func main(){
   a,b,c:=1,2,3
   fmt.Println(a,b,c)
}

输出为

image.png

5.匿名变量

在使用多重赋值的时候,如果不需要在左值中接收变量,可以使用匿名变量

匿名变量的表现形式为一个“_”下划线,使用匿名变量时,只需要在变量声明的时候用下划线替换即可

例如下面案例:

package main
import "fmt"
func main(){
   a,b,_:=1,2,3
   _,b,c:=1,2,3
   fmt.Println(a,b,c)
}

输出为:

image.png

匿名变量不占用命名空间,不会分配内存,匿名变量与匿名变量之间也不会因为多次声明而无法使用。

如果你觉得这篇内容对你有帮助的话:

1、点赞支持下吧,让更多的人也能看到这篇内容

2、关注公众号:看那个码农,我们一起学习一起进步。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情