go-iterator
lo
Our great sponsors
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- InfluxDB - Access the most powerful time series database as a service
- SonarQube - Static code analysis for 29 languages.
go-iterator | lo | |
---|---|---|
2 | 56 | |
4 | 11,486 | |
- | - | |
0.0 | 7.8 | |
8 months ago | 5 days ago | |
Go | Go | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-iterator
-
1.18 is released
I already played around a bit wit the beta a while back and made an iterator library to get to know this new language. It's here for anyone interested: https://github.com/polyfloyd/go-iterator
-
iter: Generic, lazy iterators for Go 1.18
Regarding call chaining, it is still possible to chain things with operations that return different types, but they have to be done with functions instead of methods, so the result is still the same, just it's a little less readable. There is a generic iterator implementation by polyfloyd that doesn't support method chaining, but imo being able to chain iterators is one of their biggest strengths, since implementing lazy evaluation manually for a single operation isn't that difficult, its when you need to perform multiple kinds of manipulations that it gets messy.
lo
- Khan Academy's switch from a Python 2 monolith to a services-oriented backend written in Go.
-
In what ways are channels are better than the traditional await?
Some packages offer utilities to gather results from goroutines, such as multierror.Group or parallel.Map in samber/lo.
-
samber/lo utility package based on generics
I came across samber/log a package based on generics for providing utility methods.
-
Querying and transforming object graphs in Go
However, as others have remarked, https://github.com/samber/lo is more popular recently. You can view a comparison of the two approaches in this:
If you're looking for something like LINQ in the sense that it has those functions and can strictly (as opposed to lazily) interact with structures to get those functions, there's quite a few functional libraries on pkg.go.dev. lo seems popular.
-
Future language enhancements to go
Take a look at https://github.com/samber/lo.
-
Common Utiliy Functions in Go
What the difference between it and lo? almost all functions are the same implementation
-
Min/Max for integers?
github.com/samber/lo is what this person is referring to, I think
- Golang Functional
-
Slice methods in golang
There is, in fact a Lodash-like package for Go: https://github.com/samber/lo
What are some alternatives?
underscore - 🌟 Useful functional programming helpers for Go 1.18 and beyond
mo - 🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)
fp-go - Fp-go is a collection of Functional Programming helpers powered by Golang 1.18+ generics.
go-generic-optional - Implementation of Optionals in Go using Generics
fpGo - Monad, Functional Programming features for Golang
gofp - A super simple Lodash like utility library with essential functions that empowers the development in Go
fuego - Functional Experiment in Golang
pie - 🍕 Enjoy a slice! A utility library for dealing with slices and maps that focuses on type safety and performance.
go-godash - An experimental generic functional utility library inspired by Lodash
functional-go - This library is inspired by functional programming - Clojure
goterators - A utility library that supports aggregate & transforms functions Go with generic. Such as filter, map, reduce, find, exist
valor - Go option and result types that optionally contain a value