1.软文推荐

2.软文推荐

3.软文推荐

本篇文章重点为大家讲解一下 Go 语言短变量声明时的注意事项,有需要的小伙伴可以参考一下。

1.介绍

在使用 Go 语言进行项目开发时,我们经常会在定义变量时使用 Go 语言的一个语法糖 – 短变量声明,它虽然好用,但是也会有让我们不小心就会掉进的“坑”。 本文我们介绍一个 Go 语言短变量声明最容易让程序员掉进的“坑”。

2.短变量声明的“坑”

Go 语言提供了短变量声明的语法糖,短变量声明让 Go 语言的变量声明更加方便,代码更加简洁。但是,它真的百利无一害吗?

我们先阅读一段示例代码:

func main() {
var name string = "frank"
fmt.Printf("val:%s || ptr:%p
", name, &name)
name, age := "lucy", 18
fmt.Printf("val:%s || ptr:%p
", name, &name)
fmt.Println(age)
if name != "lily" {
 name := "lily"
 fmt.Printf("val:%s || ptr:%p
", name, &name)
}
}

输出结果:

val:frank || ptr:0xc000010200
val:lucy || ptr:0xc000010200
18
val:lily || ptr:0xc000010230

阅读上面这段代码,我们先使用通用的 Go 语言变量声明方式声明变量 name,然后再使用 Go 语言语法糖 – 短变量声明方式,分别在同一作用域和不同作用域声明变量 name。

首先,我们忽略在同一作用域使用短变量声明时的变量 age,仅是为了跳过 Go 编译器的检查。

根据三次声明变量 name 的打印结果可以看出,使用短变量声明方式在同一作用域声明变量 name,仅是对变量 name 重新赋值,而不是声明一个新变量。

所以,我们得出一个结论:在同一作用域使用短变量声明方式进行变量声明时,针对重名变量,不会重新生成一个新变量,而是对重名变量进行重新赋值。

3.总结

本文我们主要介绍一个使用 Go 语言短变量声明方式进行变量声明时,我们非常容易踩的“坑”。

虽然问题比较简单,但是越是简单的问题越不容易排查,这就要求提升程序员对 Go 语言相关知识的掌握水平,尽量避免在开发时出现此类问题,导致可能会花费大量时间排查问题。

最后,我们牢记 Go 语言的短变量声明语法糖在相同作用域和不同作用域的含义可能会不同,要注意区分声明新变量和重新赋值变量。

本文来源:www.lxlinux.net/11124.html,若引用不当,请联系修改。

相关文章 8

1

美国西雅图机房(美国西雅图大厦) 2分钟前

目录:1、美国哪些机房,中国访问速度快,如何测试速度2、最好的美国服务器是哪个机房的?3、美国服务器哪个数据中心比较好的4、美国...

2

SecureCRT向远程Linux主机上传下载文件步骤图解 4分钟前

在Linux中通过wget 或 curl 工具下载比较大的文件时,会非常慢,此时我们可以使用Windows平台下的文件传送到远程Linux服务器上。本篇文章和大...

3

网站备案怎么注销(网站备案如何注销) 6分钟前

目录:1、备案注销的流程2、icp备案怎么注销3、怎么备案注销备案注销的流程 由于一些域名已经停用或者更还注册人,往往会申请把备案号...

4

Linux系统如何安装MySQL 9分钟前

MySQL是由瑞典MySQL AB 公司开发的关系型数据库,下面和大家详细讲解一下Linux系统安装MySQL的全部教程。 MySQL简介: MySQL是一个小型关系型数...

5

新乡云服务器(河南新乡服务器) 11分钟前

目录:1、哪种云服务器便宜2、购买云计算服务器哪家便宜些?3、购买云计算服务器哪家价格低?4、云计算服务器要多少钱?5、试用的云服务...

6

Apache 记录请求响应时间日志 13分钟前

本文章向大家介绍Apache 记录请求响应时间日志,主要包括Apache 记录请求响应时间日志使用实例、应用技巧、基本知识点总结和需要注意事项...