November 2017
Intermediate to advanced
670 pages
17h 35m
English
The first HOF that we exploit is the Filter function:
} else { cars := LoadCars() PrintCars("ByMake - Honda", cars.Filter(ByMake("Honda")))
You will see the following output:
ByMake - Honda-----------------------car: Honda Accordcar: Honda Accord ES2car: Honda CR-V
The Filter function is in the cars.go file. Observe the fn argument. It is passed into the Filter function and later called with a car parameter. If fn(car)--that is, ByMake("Honda")--returns true, then the car is added to the collection:
func (cars Collection) Filter(fn FilterFunc) Collection { filteredCars := make(Collection, 0) for _, car := range cars { if fn(car) { filteredCars = append(filteredCars, car) } } return filteredCars}
When we define the Filter ...