【问题标题】:Converting bool to *bool in go在 go 中将 bool 转换为 *bool
【发布时间】:2021-01-21 14:06:23
【问题描述】:

使用以下代码:

var example *bool
example = true
log.Print(example)

我有以下错误cannot convert true (untyped bool constant) to *bool

我设法解决它声明一个新变量truevalue

var example *bool
truevalue := true
example = &truevalue
log.Print(example)

但我想有一种更好的方法可以做到这一点,而无需声明任何新变量。

【问题讨论】:

  • 嗯,那个指针必须指向某处
  • 有几种(繁琐的)方法可以做到这一点。它们都被编目here。不过,您的方法是我通常采用的方法。
  • @Adrian:“不声明新变量”的另一种说法,不是吗?
  • @Adrian:但是你的值为零。 OP 似乎想设置一个明确的值。
  • 请参阅 AWS 开发工具包中的 Value and Pointer Conversions,了解处理此问题的一种方法。很多时候,提出这个问题的人都在努力使用 AWS 开发工具包。

标签: go


【解决方案1】:

指针必须指向某个东西,这意味着您必须将其分配给另一个变量的地址(如第二个示例中所示),或者使用new() 对其进行初始化,然后通过取消引用进行分配。我个人推荐前者,因为 new 在 Go 中并未广泛使用。但是,为了演示:

example := new(bool)
*example = true

https://play.golang.org/p/0VO5jNPMutQ

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多