Coder Social home page Coder Social logo

Comments (6)

deckarep avatar deckarep commented on August 19, 2024

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.

jay-babu avatar jay-babu commented on August 19, 2024

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.

deckarep avatar deckarep commented on August 19, 2024

If you’re up for writing the code with appropriate unit tests…let’s do it!

from golang-set.

jay-babu avatar jay-babu commented on August 19, 2024

sure, let me fork and give it a shot

from golang-set.

jeffwidman avatar jeffwidman commented on August 19, 2024

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.

jay-babu avatar jay-babu commented on August 19, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.