What\'s the cleanest way to handle a case such as this:
func a() string {
/* doesn\'t matter */
}
b *string = &a()
This generates the
See the relevant section of the Go language spec. &
can only be used on:
What you have is neither of those, so it doesn't work.
I'm not even sure what it would mean even if you could do it. Taking the address of the result of a function call? Usually, you pass a pointer of something to someone because you want them to be able to assign to the thing pointed to, and see the changes in the original variable. But the result of a function call is temporary; nobody else "sees" it unless you assign it to something first.
If the purpose of creating the pointer is to create something with a dynamic lifetime, similar to new()
or taking the address of a composite literal, then you can assign the result of the function call to a variable and take the address of that.