Comments (6)
Hmm,
It's certainly not a bad idea...but I do think people mostly will start with a Set from the get-go if they do need a set. There could be some underlying oddities trying to handle the copy code for the end-user. Shallow copy vs deep copy comes to mind.
If this library were to take it on, it would only make sense to accept comparable
types, ie. anything that is guaranteed to be comparable.
Give me a bit to think about this use case and thanks for your interest in improving this library.
Anyone else have opinions on supporting this?
from golang-set.
Sure, up to you
The code is pretty simple (ignoring deep copies):
func NewSetFromMapKey[T comparable, V any](vals map[T]V) mapset.Set[T] {
s := mapset.NewSet[T]()
for k := range vals {
s.Add(k)
}
return s
}
For now, I'll keep it to myself lol
from golang-set.
If you’re up for writing the code with appropriate unit tests…let’s do it!
from golang-set.
sure, let me fork and give it a shot
from golang-set.
I'm curious what scenarios you end up creating a set of map keys?
If you've already got a map, you've effectively got a superset of the normal set functionality... in fact, the idiomatic way to create go sets without this library is a map of empty structs. So why extract the keys and convert to a set?
from golang-set.
I'm curious what scenarios you end up creating a set of map keys? If you've already got a map, you've effectively got a superset of the normal set functionality... in fact, the idiomatic way to create go sets without this library is a map of empty structs. So why extract the keys and convert to a set?
I had a set from some other logic and a map. I needed to find the intersection of the set and map keys. can't go into deep details
from golang-set.
Related Issues (20)
- Missing support Len()/Count()/Size() method? HOT 2
- iterate with random sequence? HOT 1
- Feature request: Support for immutable sets HOT 1
- [Q] How to print the contents of a Set? HOT 1
- Getting error when instantiating a set: "invalid operation: cannot index mapset.NewSet (value of type func(s ...interface{}) mapset.Set)" HOT 6
- No installation guide
- [Question] Contains() parameters escape to heap HOT 4
- How I can get every elements in my set? HOT 2
- Unmarshalling threadUnsafeSet with json.Unmarshal panics HOT 7
- Document thread-safe set usage HOT 1
- Issue: Contains HOT 2
- [Question] Why isn't `defer` used? HOT 6
- Non-mutating helpers to add/remove HOT 2
- Guidance/suggestions on Iterators and Stop() HOT 5
- Add a way to distinguish thread safe and unsafe sets HOT 3
- Is there any method to know whether a set is empty? HOT 2
- unmarshal json fails when set is part of struct HOT 2
- Suggestion: option to restrict comparable to only exported values. HOT 1
- why isn't there a `mapset.NewSetFromSlice` method? HOT 1
- Allow capacity to be specified when initializing a Set HOT 2
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 golang-set.