是否可以在不同的文件中有两个同名的常量?foo.goconst { deviceId = 1 // I dont need this outside the file scope}type DeviceA struct { .. some fields.. // I cannot make constant fields here}.. some methods ...bar.goconst { deviceId = 2 // I dont need this outside the file scope}type DeviceB struct { .. some fields .. // I cannot make constant fields here}.. some methods ...如果我这样做,我会得到它deviceId已被重新声明。如何将这些常量保留在文件的范围内?如果可以解决这个问题,我不介意为常量使用某种命名空间。
2 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
回答你的问题:不可能有两个具有相同名称的常量,在相同的范围内,在不同的文件中的相同包中。
Go 中没有命名空间或文件范围。
但是,在同一个包中可以有两个同名的常量,但在不同的范围内声明:
package main
import (
"fmt"
)
const a = 1
func main() {
const a = 2
fmt.Println(a) // output is 2
}
scope 详情请见:https://golang.org/ref/spec#Declarations_and_scope
- 2 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消