Go OR-Done-Channel Pattern: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 10: Line 10:
}
}
</syntaxhighlight>
</syntaxhighlight>
This is a simple and intuitive syntax, but it gets verbose if we want to [[Go_Channels#Use_a_done_Channel|make the loop preemptable by using a <code> channel]].

Revision as of 22:16, 5 February 2024

Internal

Overview

Reading from a channel until the channel is closed can be done by ranging over a channel:

for v := range c {
  // do something with the channel value, we exit the loop automatically when the channel is closed
  ...
}

This is a simple and intuitive syntax, but it gets verbose if we want to make the loop preemptable by using a channel.