您的位置 首页 编程知识

Go 代码中允许声明两个同名变量吗?

go 代码中的变量声明异常 原始代码中声明了两个名为 newline 的变量,但这似乎违反了变量声明的一般规则…

Go 代码中允许声明两个同名变量吗?

go 代码中的变量声明异常

原始代码中声明了两个名为 newline 的变量,但这似乎违反了变量声明的一般规则。让我们仔细探讨一下为什么可以存在这样的声明:

var newline = flag.bool(“n”, false, “print newline”)

这个变量是通过 flag 库创建的,是一个布尔标志,表示是否打印换行符。

const newline = “n”

这是内部定义的常量,表示换行符字符。

由于 newline 是常量,它的值不可变。另一方面,newline 是变量,因此它的值可以在程序运行时更改。因此,当 -n 标记被解析时,newline 的值变成 true。

现在,让我们来看看为什么更改另一个变量名会导致:

var test *bool

这个变量声明试图创建指向布尔值指针的变量。不幸的是,test 还没有被赋予任何值,所以它处于未初始化状态。

var temp = false

这是一个布尔常量,被赋予值 false。

`const (

Space   = " " Newline = " " Test = &temp
登录后复制

)`

在这里,常量 test 被设置为指向 temp 常量的指针。这会导致编译错误,因为常量不能改变引用。因此,即使 temp 是常量,test 仍然是未初始化的,因此不能声明为常量。

以上就是Go 代码中允许声明两个同名变量吗?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/3239.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部