Как добавить набор в список наборов в Scala - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть список Наборов, и я хотел бы добавить к нему Набор.Я предполагаю, что мне нужно добавить в список, используя оператор :: .

Мой код:

// attribute_sets is a tuple (String, Set[String])

val listsOfSets: List[Set[String]] = attribute_sets
      .foldLeft(List[Set[String]])((acc, attribute_set) => {
        acc  :: (attribute_set._2 + attribute_set._1)
      })

IntelliJ сообщает, что существует несоответствие типов (expected String, actual Set[String]), когда я пытаюсь добавить к acc.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Тип attribute_set._2 + attribute_set._1 - String, поскольку используется операция + - String.

Следовательно, операция :: не может быть разрешена, так как она используется для объединения наборов, а не для добавления строки в набор.

Таким образом, вы должны либо изменить +, либо *Оператор 1011 * в зависимости от ожидаемого результата.

0 голосов
/ 20 декабря 2018

Вы можете использовать :: только для добавления элемента в начало списка:

x :: list

Чтобы добавить что-то в конец списка, вы должны использовать оператор :+:

list :+ x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...