首页 > 文章列表 > Go 代码中变量声明:为什么可以重复声明变量名,但不能重新声明常量?

Go 代码中变量声明:为什么可以重复声明变量名,但不能重新声明常量?

275 2025-02-24

Go 代码中变量声明:为什么可以重复声明变量名,但不能重新声明常量?

这段 Go 代码的变量声明

这部分代码展示了在 Go 中声明变量的不同方式。

首先,NewLine 被声明为 flag.Bool("n", false, "print newline"),这是一个 Echo -n 标记,类型为 *bool。

其次,Space 和 Newline 被声明为常量,类型分别为字符串和换行符。

变量重复声明问题

注意到变量 NewLine 在代码中被重复声明两次:一次作为 flag.Bool,一次作为常量。由于变量名的大写和小写敏感,这两个变量实际上是不同的。因此,允许重复声明。

然而,重新声明 Test 变量为同一类型却失败了。这是因为 Test 变量被声明为一个常量,即一个指针。常量不能被重新声明。

来源:1730525557