Range Over Channels | Challenge

GoGoBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

This challenge aims to test your ability to iterate over values received from a channel using the for and range syntax in Golang.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("`Go`")) -.-> go/ConcurrencyGroup(["`Concurrency`"]) go/ConcurrencyGroup -.-> go/channels("`Channels`") subgraph Lab Skills go/channels -.-> lab-15416{{"`Range Over Channels | Challenge`"}} end

Range Over Channels

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.

Requirements

  • The function should be named sumInts.
  • The function should take in a single parameter of type chan int.
  • The function should return a single integer value.
  • You are not allowed to use any loops or recursion inside the function body.
  • You are not allowed to use any external packages.

Example

$ 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.

Summary

In this challenge, 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 challenge, 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.

Other Go Tutorials you may like