Scala Nil equivalent for Set

Rand picture Rand · May 8, 2012 · Viewed 11.3k times · Source

Is there an equivalent of Nil for Set in scala?

I tried using Nil as a value for Set, but I got an error (expected since the type of Nil is List)

Thanks

Answer

Rex Kerr picture Rex Kerr · May 8, 2012

Set.empty is that set; although you can't get at it directly, it turns out that it is just a private object in the Set companion object (called, obviously enough, EmptySet). All that Set.empty does is return that set with a cast to the correct type.

It is done this way, instead of with Nil, because sets are invariant in their parameters. Nil is List[Nothing](), but you couldn't add anything to a Set[Nothing]().

If you need to specify the type of your empty set, you can use e.g. Set.empty[String].