声明和使用变量


前言

在上一个模块中,你配置了一个 Go 环境,用于创建和运行 Go 中所编写的程序。 此外,你还了解到 Go 程序的编码结构基本知识,以及如何编译和运行应用程序。

在此模块中,你将逐步学习中 Go 提供的基本数据类型,并使用函数组织在 .go 文件中编写的代码。 你还将了解如何在同一包下的不同文件中管理和编写程序。 最后,你将了解如何在 Go 中创建和使用包。

学习目标

在此模块中,你将:

  1. 声明变量和常量
  2. 了解 Go 提供的基本数据类型
  3. 编写函数
  4. 创建和使用包

一、声明和使用变量

1 声明变量

若要声明变量,需要使用 var 关键字:

var firstName string

前一个语句声明 string 类型中的一个名为firstName 的变量。 (我们将在后续章节中讨论数据类型。)此示例演示声明变量的最基本方法。 如要声明其他变量,只需将类似的语句添加到上一个语句中。 但如果两个变量的类型相同,则可以在一行中声明多个变量:

var firstName, lastName string

通过在变量名称后面添加逗号 (,),就表示你将要声明其他变量。 在这种情况下,前一个语句就声明了 string 类型中的两个变量:firstName和lastName。 如要添加 int 类型的第三个变量,请按如下所示编写代码:

var firstName, lastName string
var age int

另一种编写前一个语句的方法是在 var 关键字后面使用括号,就像通过一个专用块来声明变量一样,如下所示:

var (
    firstName, lastName string
    age int
)

2 初始化变量

此时,你只可声明了变量,但有时候,你需要为它们赋予初始值。 在 Go 中,你可以通过多种方式初始化变量。 例如,沿用前面提及的同一个示例,你可以使用此代码初始化每个变量:

var (
    firstName string = "John"
    lastName  string = "Doe"
    age       int    = 32
)

如果你决定初始化某个变量,则不需要指定其类型,因为当你使用具体值初始化该变量时,Go 会推断出其类型。 例如,你可以用此方式声明并初始化变量:

var (
    firstName = "John"
    lastName  = "Doe"
    age       = 32
)

Go 将推断出变量 firstName 和 lastName 的类型为 string,并且变量 age 属于 int 类型。

3 通过多种方式初始化变量

在 Go 中,你可以在单行中声明和初始化变量。 使用逗号将每个变量名称隔开,并对每个值执行相同的操作(按同一顺序),如下所示:

var (
    firstName, lastName, age = "John", "Doe", 32
)

还可以通过另一种方式来声明和初始化变量。 此方法是在 Go 中执行此操作的最常见方法。 以下是我们使用的同一个示例说明:

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
    fmt.println(firstName, lastName, age)
}

请注意,在定义变量名称后,需要在此处加入一个冒号等于号 (:=) 和相应的值。 使用冒号等于号时,要声明的变量必须是新变量。 如果使用冒号等于号并已经声明该变量,将不会对程序进行编译。 继续尝试。

4 声明常量

有时,你需要在代码中加入静态值,这称为 常量。 Go 支持使用常量。 用于声明常量的关键字是 const。

例如,你可以按如下所示声明常量:

const HTTPStatusOK = 200

与变量一样,Go 可以通过分配给常量的值推断出类型。 在 Go 中,常量名称通常以混合大小写字母或全部大写字母书写。

如果需要在一个块中声明多个常量,可以按如下所示执行:

const (
    StatusOK              = 0
    StatusConnectionReset = 1
    StatusOtherError      = 2
)

常量和变量之间既有相似之处,也有一些重要差异。 例如,你可以在不使用常量的情况下声明常量。 你不会收到错误消息。 不能使用冒号等于号来声明常量。 如果采用这种方式,Go 会发出警告。

如果声明了变量但未使用,Go 会抛出错误

需要记住的重要一点是,在 Go 中,当你声明一个变量但不使用它时,Go 会抛出错误,而不是像某些其他编程语言一样抛出警告。

例如,让我们回到前面提及的某个示例,然后删除 fmt.println 调用:

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
}

当你在 Visual Studio Code 或 Go Playground 中运行此代码时,你将看到在要声明变量的多个行中存在错误。 你将看到以下错误消息:

// 输出错误
./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used

请记住,对于在 Go 中声明的每个变量,你必须将其用于某处。


总结

  1. 声明种类很多,关键字为var,可以单个声明,也可以多个声明,甚至使用块声明。
  2. 通过多种方式初始化变量,可以使用关键字var,如果不使用关键字var,就需要使用 : = := := 来替代等号(=)。
  3. 声明常量需要使用关键字const,并且不能使用冒号等于号来声明常量。
  4. 如果声明了变量但未使用,Go 会抛出错误
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值