Catching return values from goroutines
concurrency, go, goroutine
Solution
The strict answer is that you can do that. It's just probably not a good idea. Here's code that would do that:
var x int
go func() {
x = doSomething()
}()
This will spawn off a new goroutine which will calculate `doSomething()` and then assign the result to `x`. The problem is: how are you going to use `x` from the original goroutine? You probably want to make sure the spawned goroutine is done with it so that you don't have a race condition. But if you want to do that, you'll need a way to communicate with the goroutine, and if you've got a way to do that, why not just use it to send the value back?
Problem
The below code gives compilation error saying 'unexpected go': ``` x := go doSomething(arg) func doSomething(arg int) int{ ... return my_int_value } ``` I know, I can fetch the return value if I call the function normally i.e. without using goroutine or I can use channels etc. My question is why is it not possible to fetch a return value like this from a goroutine.