To create a goroutine that executes a function with a return value in Go, you can use the go
keyword followed by the function call. The return value of the function can be captured using channels.
Here is an example code snippet:
main.go252 chars21 lines
In the above code, we're creating a computeSquare
function which takes two arguments: ch
is a channel where the result is sent, and num
is the number whose square needs to be computed. Inside the function, we're calculating the square of the number and sending the result back over the channel.
In the main
function, we create a channel ch
using the built-in make
function. We then start a new goroutine using go computeSquare(ch, 5)
. This will calculate the square of the number 5 in a separate thread.
To capture the return value of the function, we use the arrow operator <-
to receive the value from the channel ch
. We store this value in the square
variable and print it out to the console.
Note that we've used a channel with a direction <-chan
for sending data into the function and a channel with a direction chan<-
for receiving data from the function. This helps in making the code safer and easier to read.
gistlibby LogSnag