【问题标题】:How do i print Variable name instead of the value assigned to the variable? [duplicate]如何打印变量名称而不是分配给变量的值? [复制]
【发布时间】:2021-01-26 18:15:53
【问题描述】:

我有一个分配给变量的值。如何打印变量的名称而不是分配给变量的值?我知道我可以将变量名称硬编码到 Printf 函数中,但我不想使用它。如果类似的东西在 Go 中有效,我想使用 formater。

例子

user := "Jada"
fmt.Println(user)

上面将打印分配给变量的值,即“Jada”。

有没有办法让它打印变量名用户,而不是变量值?

【问题讨论】:

  • 我认为您不能只获取标识符本身。但是您可以使用fmt.Printf("%+v\n", user) 获得部分方式,它为您提供标识符和值
  • 这对于 struct 非常有效,但不适用于普通变量。谢谢

标签: go variables


【解决方案1】:

当你向函数传递一个值时,变量名并没有传递给它,所以不可能打印出变量名。甚至无法获取参数的名称,详情见Getting method parameter names

您可以做的最接近的做法是使用结构作为参数类型,您可以获取并打印字段的名称(使用反射)。或者使用映射,并将变量名作为键传递。

【讨论】:

  • 谢谢。这似乎是唯一的解决方案
猜你喜欢
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2011-08-19
  • 2012-09-20
相关资源
最近更新 更多