Comments (4)
it is a good example, though I think that adding extra logic to the method will make it not so lightweight as we try to keep it. I suggest to implement this logic in plinq api, which is probable to happen sometime in the future.
from go-linq.
@kalaninja Agreed. Normally, we could have ForEach
and ForEachAsParallel
, but I bet most people will get the job done with a simple go f()
inside ForEach + sync.WaitGroup
Personally, if I have a slice of 100,000 items, I don‘t want ForEach to create a goroutine for each of them in the background (this is an easy way to run out of file descriptors on linux and crash your program).
I feel most Go programmers want to have finer control over their concurrency code. For instance instead of running 100,000 goroutines concurrently, I can develop a system that would control max concurrent jobs etc. I think I'd like to see a simpler design which we can incorporate, before tagging v3.0.
As per the design I think I am fine with @kalaninja's original design which was:
func (Query) ForEach(func(v interface{})
func (Query) ForEachIndexed(i int, func(v interface{})
ForEachT
,ForEachIndexedT
Thoughts?
from go-linq.
Closing this as #57 is merged.
@kalaninja If your commit message (not the title) or the PR descriptionincludes Closes #58
, such issues will be automatically closed. More info:
https://help.github.com/articles/closing-issues-via-commit-messages/
https://github.com/blog/1506-closing-issues-via-pull-requests
from go-linq.
thanks @ahmetalpbalkan. I always forget about this feature when commiting changes
from go-linq.
Related Issues (20)
- Append方法优化
- "GroupBy has better performance than GroupByT" is written on the document,why?
- ToChannelT release? HOT 2
- why union.go file doesn't have func UnionBy like the func IntersectBy in intersect.go
- Why `ToSlice` need a custom grow strategy instead of the standard library? HOT 1
- runtime error: hash of unhashable type map[string]interface {} HOT 9
- Unit test ExampleOrderedQuery_ThenByDescending fails on golang-1.19.2 HOT 6
- sort result is unexpected HOT 1
- How to implement the full join function of SQL
- new generic functions type HOT 1
- 转换错误 HOT 1
- I expect the data queried using gorm to be converted using go-linq HOT 1
- bug in WhereIndexed HOT 7
- Article comparing performance of go-linq vs others HOT 4
- gopkg.in/ahmetb/go-linq.v3: gopkg.in/ahmetb/[email protected]: parsing go.mod: module declares its path as: github.com/ahmetb/go-linq/v3 but was required as: gopkg.in/ahmetb/go-linq.v3 HOT 5
- how about add parameter timeout for FromChannelT?
- Try out the new Go generics proposal with go-linq HOT 14
- Is it safe to copy in multiple concurrency HOT 2
- How to implement complex SQL functions HOT 5
- PLINQ support HOT 1
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 go-linq.