type Iterator … type ResultIterator … type ConditionIterator … // Each iterates over the slice and apply Iterator to every item func Each(array []interface{ … } // Map iterates over the slice and apply ResultIterator to every item. Returns new slice as a result. func Map(array []interface{ … } // Find iterates over the slice and apply ConditionIterator to every item. Returns first item that meet ConditionIterator or nil otherwise. func Find(array []interface{ … } // Filter iterates over the slice and apply ConditionIterator to every item. Returns new slice. func Filter(array []interface{ … } // Count iterates over the slice and apply ConditionIterator to every item. Returns count of items that meets ConditionIterator. func Count(array []interface{ … }