Comments (4)
You use case is interesting.
I wonder if it could be replaced by Must+Try:
err, ok := lo.TryWithErrorValue(func() error {
complexStruct{
id: Must(doSimpleThing1()),
name: Must(doSimpleThing2()),
email: Must(doSimpleThing2()),
...
}
return nil
})
WDYT?
from lo.
@samber
https://gist.github.com/wirekang/372054026f5f7db887d55485b8ee4ca2
I wrote 3 different way to make Person
from ctx
. I think Delay
(temp name) way is also a decent way, although it's similar with Try
way.
from lo.
Using this Delay
function implies a side effect. I'm not a fan of such a pattern. In the library, we try to stay close to functional programming philosophy.
On the other side, Try+Must will halt the function and immediately return the error.
I don't want to block this contrib, but I wonder if we could make it easier to use.
from lo.
I totally agree with you, and I think there are no way to make the function easier to use due to limitation of Go.
from lo.
Related Issues (20)
- Is there any plan to add support for python's itertools module?
- Proposal: lo.OrElse() HOT 2
- tree shaking / dead code elimination HOT 2
- Add lo.MapByPtr HOT 3
- Any chance for a typesafe func piping utility in lo?
- Add filterNotNill function HOT 2
- Why Async doesn't close a chan? HOT 1
- propose: Add First() on slice, empty to return nil HOT 2
- Chunk has memory leak
- Slight performance boost on PickByKeys / OmitByKeys
- Add .Get() to Tuple family as alias for .Unpack() to match samber/mo
- Keys: accept multiple maps (vaargs) HOT 5
- Cancelable concurrent tasks
- Proposal: considering a new type of Group: a key mapper to a bunch of values, for extend map structure
- Proposal: Use generics for underling types
- propose: Add distinctByKey() on slice,return slince
- Suggestion: Add a sorting method by a certain type to slice and return the slice
- Error: could not resolve parametric type of accumulator: could not resolve interface type
- Proposal: Helpers for combine function and tuple HOT 1
- TYPO: Maybe a typo in Readme.md HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lo.