Intellij: отсутствует метод последовательного сбора для Scala

Я попытался преобразовать последовательный список в параллельный в Intellij, но я получаю ошибку

Не удается разрешить символ

на .par вызов метода:

import scala.collection.parallel.immutable._
...
val parList = List(1,2,3).par

Согласно https://docs.scala-lang.org/overviews/parallel-collections/overview.html, нужно просто

вызовите метод par в последовательной коллекции list. После этого можно использовать параллельный сбор таким же образом, как обычно использовать последовательный сбор.

Что меня удивляет, так это то, что я не нашел par Метод в текущем неизменяемом списке API-интерфейса scala: https://www.scala-lang.org/api/current/scala/collection/immutable/List.html

Но есть даже специальная страница документации Scala для последовательного и параллельного преобразования, которая использует par метод: https://docs.scala-lang.org/overviews/parallel-collections/conversions.html

О моей настройке

Я нахожусь на Arch Linux с OpenJDK 10 установлен на уровне языка 9 (в Intellij) и scala-sdk-2.13.0.

Импортированные зависимости библиотеки:

  • scala-library (2.13.0)
  • scala-parallel-collections (2.13.0)

1 ответ

Решение

Как упомянул @Thilo в комментарии, мне не хватало следующего импорта, необходимого начиная с Scala 2.13:

import scala.collection.parallel.CollectionConverters._

Источник: https://github.com/scala/scala-parallel-collections/issues/22

Помимо импорта:

import scala.collection.parallel.CollectionConverters._ 

вам также необходимо добавить зависимость в pom.xml вашего проекта maven:

<dependency>
        <groupId>org.scala-lang.modules</groupId>
        <artifactId>scala-parallel-collections_2.13</artifactId>
        <version>0.2.0</version>
</dependency>
Другие вопросы по тегам