Introduction
This lab aims to test your ability to iterate over values received from a channel using the for
and range
syntax in Golang.
This lab aims to test your ability to iterate over values received from a channel using the for
and range
syntax in Golang.
You are required to write a function that takes in a channel of integers and returns the sum of all the integers received from the channel.
sumInts
.chan int
.$ go run range-over-channels.go
one
two
## This example also showed that it's possible to close
## a non-empty channel but still have the remaining
## values be received.
There is the full code below:
// In a [previous](range) example we saw how `for` and
// `range` provide iteration over basic data structures.
// We can also use this syntax to iterate over
// values received from a channel.
package main
import "fmt"
func main() {
// We'll iterate over 2 values in the `queue` channel.
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
// This `range` iterates over each element as it's
// received from `queue`. Because we `close`d the
// channel above, the iteration terminates after
// receiving the 2 elements.
for elem := range queue {
fmt.Println(elem)
}
}
In this lab, you were tasked with writing a function that sums up all the integers received from a channel using the for
and range
syntax in Golang. By completing this lab, you should have a better understanding of how to iterate over values received from a channel and how to use goroutines to receive values from a channel.