【问题标题】:C# equivalent of @ for variables in Go?C#相当于Go中变量的@?
【发布时间】:2022-01-23 13:53:30
【问题描述】:

在C#中,当我们想要一个与关键字同名的变量时,我们可以在var前面加上@。

var @type = "Hello, world";

Go 中有类似的东西吗?

【问题讨论】:

  • 一开始就在 C# 中这样做是个坏主意。您应该使用更具描述性的名称。
  • 使用另一个字符,例如var _type = "Hello, world"
  • @PanagiotisKanavos,类型只是一个例子。我最近在一个项目中工作,我们有一个信息模型,其中包含一个称为“案例”的“实体”。这“迫使”我使用“@case”作为变量名,否则它会“破坏”无处不在的语言。
  • @Inx51 箱子还是箱子?刑事侦察?大写还是小写?病人还是试验? case这个词不是个好选择
  • @PanagiotisKanavos,如 errande、issue 或瑞典语 Ärende。然而.. errand 更像是你需要做的事情,并且 issue 主要是一个“问题”.. 所以它们都没有真正符合“Ärende”的实际含义。我确实同意应避免将保留关键字用作变量名或域/信息模型的一部分,但如前所述,有时将其命名为其他名称是没有意义的。

标签: go identifier


【解决方案1】:

Golang 有没有类似的东西?

没有。您不能重新声明 keywordstype 是关键字。

虽然有些标识符是predeclared,但它们不是关键字,您可以在较小的范围内隐藏它们。 (顺便说一句,可以!=应该

var b bool = true

func main() {
    bool := "shadowed bool ident of type string"
    fmt.Println(bool)
}

对于名为“type”的变量,我最常看到的模式是改用typ

请注意导出的标识符,例如Type,有效。

【讨论】:

  • 致提问者:我仍然强烈建议不要重新声明任何预先声明的内容;这实际上甚至适用于常规(您的)符号——除了处理在range 循环中重复使用迭代变量等棘手的情况。我建议坚持this document from the Go code team 的建议。
猜你喜欢
  • 2012-02-18
  • 2014-02-25
  • 2019-09-19
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
相关资源
最近更新 更多