Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
240 views
in Technique[技术] by (71.8m points)

Converting bool to *bool in go

With the following code:

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

I have the following error cannot convert true (untyped bool constant) to *bool

I manage to solve it declaring a new variable truevalue:

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

But I imagine there is a better way to do it, without declaring any new variables.

question from:https://stackoverflow.com/questions/65829129/converting-bool-to-bool-in-go

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

A pointer has to point to something, which means you have to either assign it to the address of another variable (as in your second example), or initialize it with new() and then assign by dereference. Personally I'd recommend the former, as new is not widely used in Go. But, for demonstration:

example := new(bool)
*example = true

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...