November 2017
Intermediate to advanced
670 pages
17h 35m
English
Time to check out generators. Generators are useful because they allow us to delay an expression evaluation. We only compute the expression(s) we need when we need them. Generators also conserve memory because with generators, we only create and use what we need, no more:
PrintCars("GenerateCars(1, 3)", cars.GenerateCars(1, 3))
We will find the implementation of GenerateCars in the generate.go file:
package hofimport ( "sync" "log")func carGenerator(iterator func(int) int, lower int, upper int) func() (int, bool) { return func() (int, bool) { lower = iterator(lower) return lower, lower > upper }}func iterator(i int) int { i += 1 return i}
We define our imports. The sync import is a clue that we have a need to synchronize our Goroutines. ...