I need to write a function that returns true if a set (this set is the output of another function) contains 1 element and otherwise it leaves the set as it is.

For example:

Set(1) returns a specific result and Set(2,4) returns the set as it is.

How can I check how many elements a set contains?

有帮助吗?

解决方案

You just need the size method on a Set:

scala> Set(1).size
res0: Int = 1

scala> Set(1,2).size
res1: Int = 2

See also the documentation for Set.

Let's say your other function is called getSet. So all you need to do is call it, then check the size of the resulting Set, and return a value depending on that size. For example, I shall assume that if the set's size is 1, we need to return a special value (a Set containing the value 99) - but just replace this with whatever specific result you actually need to return.

def mySet = {
  val myset = getSet()
  if (myset.size == 1) Set(99)  // return special value
  else myset  // return original set unchanged
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top