2013-11-30 1 views
7

Мне нужно написать функцию, возвращающую значение true, если набор (этот набор является выходом другой функции) содержит 1 элемент и в остальном он оставляет набор таким, какой он есть.Проверка количества элементов, содержащихся в наборе

Например:

Набор (1) возвращает определенный результат и множество (2,4) возвращает набор, как она есть.

Как проверить, сколько элементов содержится в наборе?

+0

Почему вы не основываете свое состояние на методе 'Set'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' – Mik378

+1

http://www.scala-lang.org/files/archive/api/current/#scala.collection.Set –

ответ

9

Вам просто нужно метод size на Set:

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

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

Смотрите также documentation for Set.

Скажем, ваша другая функция называется getSet. Итак, все, что вам нужно сделать, это вызвать его, а затем проверить размер полученного Set и вернуть значение в зависимости от этого размера. Например, я предполагаю, что если размер набора равен 1, нам нужно вернуть специальное значение (набор, содержащий значение 99), но просто замените его каким-либо конкретным результатом, который вам действительно нужно вернуть.

def mySet = { 
    val myset = getSet() 
    if (myset.size == 1) Set(99) // return special value 
    else myset // return original set unchanged 
} 
+1

Вместо использования ** специальных ** типов возврата, которые могут запутаться из-за того, что они ** магические **, почему бы не использовать возвращаемый тип 'Option [Set [A]]' где 'A' is' Int' здесь? –

+0

Согласовано, что может быть лучшим дизайном (в зависимости от того, чего фактически пытается достичь ОП) – DNA

 Смежные вопросы

  • Нет связанных вопросов^_^