Описание тега scala-implicits

1 ответ

Обширные коллекции Scala

У меня есть Seq[(A, B)], Я хотел добавить неявный метод в такие коллекции, чтобы я мог сделать .toMultiMap чтобы вернуть Map[A, Seq[B]], Это была моя первая попытка: implicit class PairsExtensions[A, B](t: Traversable[(A, B)]) { def toMultiMap: Map[…
1 ответ

Изменение неявной переменной с частной на публичную причину "ковариантный тип T происходит в инвариантной позиции" Ошибка

У одного из моих классов есть TypeTag: abstract class Tagged[+T](implicit ttg: TypeTag[T]) TypeTag (в данном случае закрытая переменная) вызвал некоторую проблему, поскольку он не сериализуем. Поэтому попробуйте объявить его как @transient: abstract…
06 июн '16 в 15:01
1 ответ

Scala: рекурсивный неявный тип

У меня есть следующие черты для разбора, которые дают файловые позиции для начала и конца объекта: case class FilePosn(lineNum :Int, tabs: Int, spaces: Int, fileName: String) {/*code omitted*/} trait PosnEnds { def startPosn: FilePosn def endPosn: F…
24 ноя '15 в 14:21
3 ответа

Scala не позволяет мне добавлять целые числа

Вот код, который выглядит достаточно разумным для меня: val myMap: Map[Int, Int] = ((x: Int) => Map[Int, Int](1 -> x + 1, 2 -> x + 2))(4) Когда я пытаюсь его скомпилировать, я получаю две ошибки: Error:(20, 68) type mismatch; found : Int(1)…
21 июл '16 в 02:01
1 ответ

Член класса Scala Implicit недоступен в объекте

Я использую оболочку Scala bCrypt для шифрования пароля пользователя, эта оболочка предоставляет неявный класс. package object bcrypt { implicit class Password(val pswrd: String) extends AnyVal { def bcrypt: String = B.hashpw(pswrd, BCrypt.gensalt()…
01 июл '17 в 11:05
1 ответ

Как реализовать Functor[набор данных]

Я борюсь за то, как создать экземпляр Functor[Dataset]... проблема в том, что когда ты map от A в B Encoder[B] должно быть в неявном объеме, но я не уверен, как это сделать. implicit val datasetFunctor: Functor[Dataset] = new Functor[Dataset] { over…
2 ответа

Неоднозначные неявные значения для класса типов

Я пытаюсь абстрагировать логику синтаксического анализа json, которая запускается для определенного типа. Я начал создавать черту Parser следующим образом: trait Parser { def parse[T](payload : String) : Try[T] } У меня есть реализация этой черты по…
15 июл '18 в 21:15
1 ответ

Цепное неявное преобразование функции в общий класс

У меня есть следующий код, который должен был взять функцию A => Boolean (универсальный тип ввода) и преобразовать его в универсальный признак Y[A] через цепные неявные преобразования: val f: Int => Boolean = ??? trait X[A] { def m1: Unit } im…
0 ответов

Как найти неявную функцию (и) с помощью метапрограммирования Scala?

В языке scala неявная область видимости класса стирается во время выполнения, например, если определяется: case class A(i: Int) object A { implicit def toInt(a: A) = a.i } Тогда для массива: val arr = Array[Any](A(1), 2) невозможно написать: arr.map…
27 дек '17 в 23:54
0 ответов

Избегайте неявных параметров, превращающихся в неявные преобразования

Предполагаемый вывод следующего кода является цифрой, 0, object Bad extends App { implicit val massTable: Map[String, Int] = Map("H" -> 1, "He" -> 4, "O" -> 16) Implementation.doWork() } object Implementation { def doWork()(implicit massTab…
2 ответа

Почему я получаю "не удалось найти неявное значение для сообщений параметров: play.api.i18n.Messages"

Я получаю вышеуказанную ошибку компиляции в сообщениях ("заголовок") import play.api.i18n.Messages import play.api.mvc._ import scala.concurrent.Future trait ApplicationController extends Controller { def get = Action.async { implicit request => …
10 авг '16 в 11:04
0 ответов

В scala, почему этот неявный параметр не может быть выведен из той же области?

Я пишу простую утилиту Apache Spark, которая автоматически создает AccumulatorV2 на основе предоставленного начального значения: import java.lang type Acc[T] = AccumulatorV2[T, T] implicit val long1: Long => Acc[lang.Long] = _ => new LongAccum…
09 янв '18 в 01:26
3 ответа

Как я могу "развернуть свою библиотеку" с помощью Scala, ориентированной на будущее?

Я использую неявные классы Scala для расширения объектов, с которыми часто работаю. Как пример, у меня есть метод, подобный этому, определенный на Spark DataFrame: implicit class DataFrameExtensions(df: DataFrame) { def deduplicate: Boolean = df.gro…
14 май '18 в 13:15
1 ответ

Типирование скалы требует неявного

Я пытаюсь построить следующее У меня есть родительский родовой класс abstract class ResultProvider[+T: Writes](db: DB) { def get(id: Long): Future[Seq[T]] } И некоторые реализации, например class LengthProvider(db: DB) extends ResultProvider[LengthR…
2 ответа

Почему функции в неявном классе недоступны?

Я пытаюсь научить себя Scala и использую IntelliJ IDEA в качестве своей IDE. Я запустил оболочку IntelliJ sbt, запустил console а затем введите следующее: import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, SparkSession} import…
22 май '18 в 22:12
2 ответа

Скала неявная в определении типа функции

У меня есть следующий абстрактный класс: abstract class FieldProvider[+T: Writes](db: DB)(implicit i: RequestAction, j: ExecutionContext) {} и следующие реализации: class LengthProvider extends FieldProvider ... object LengthProvider extends ((DB) =…
2 ответа

Странная ошибка компилятора Scala при удалении вызова функции с возвращаемым типом Unit, как это вообще возможно?

Вот странная ситуация: Если я закомментирую звонок feed_usingExplicitTypeClassInstance ниже, то я получаю ошибку компилятора. Очень загадочно. Любое объяснение? Я имею в виду, я закомментирую вызов функции (которая не возвращает значения), а затем к…
29 апр '18 в 18:39
1 ответ

Как неявные типы в Scala работают со ссылкой на этот https://youtu.be/hC4gGCD3vlY?t=263

Как неявные типы в Scala работают со ссылкой на этот https://youtu.be/hC4gGCD3vlY?t=263. Также я не понял, почему он упоминает, что объект convertAtoB является статическим.
3 ответа

Строка сопутствующий объект в Scala

Учитывая тип, который имеет "конвертер", я хотел бы иметь автоматическое преобразование при вызове метода с использованием объекта-компаньона этого типа. То есть, учитывая следующее определение, case class Converted(name: String) trait Converter[A] …
29 мар '17 в 09:04
1 ответ

Выберите поле по типу

Я пытаюсь создать класс типа, который позволяет выбрать поле для данного типа. Это то, что я сделал до сих пор, но компилятор не может найти Selector.Aux case class AddressKey(street: String, city: String) trait AddressKeySelector[A] { def addressKe…
09 июн '17 в 20:24