go 中将 bool 转换为 *bool

pca*_*ana 0 go

使用以下代码:

var example *bool
example = true
log.Print(example)
Run Code Online (Sandbox Code Playgroud)

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

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

var example *bool
truevalue := true
example = &truevalue
log.Print(example)
Run Code Online (Sandbox Code Playgroud)

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

Adr*_*ian 11

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

example := new(bool)
*example = true
Run Code Online (Sandbox Code Playgroud)

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