tgoop.com/goproglib/6519
Create:
Last Update:
Last Update:
В Go нет встроенных функций для работы с коллекциями, которые есть в других языках. Хотите отфильтровать слайс или применить функцию к каждому элементу? Придется писать цикл вручную.
Библиотека pie решает эту проблему. Она добавляет привычные функции для работы со слайсами и мапами: Filter, Map, Reduce, Find и десятки других.
Примеры:
names := pie.FilterNot([]string{"Bob", "Sally", "John", "Jane"},
func(name string) bool {
return strings.HasPrefix(name, "J")
})
// ["Bob", "Sally"]
name := pie.Of([]string{"Bob", "Sally", "John", "Jane"}).
FilterNot(func(name string) bool {
return strings.HasPrefix(name, "J")
}).
Map(strings.ToUpper).
Last()
// "SALLY"Для чейнинга есть три варианта обёрток, в зависимости от типа данных:
•
pie.Of — работает с любыми типами, но набор функций ограничен•
pie.OfOrdered — для чисел и строк, функций больше•
pie.OfNumeric — только числа, доступны все функции включая математические операцииТребует Go 1.18+ из-за дженериков. Если работаете на более старой версии, есть v1 библиотеки без дженериков.
Своё приложение или либа = опыт. А опыт просто так не получить, но мы поможем.
#GoToProduction

