Описание тега scala-generics
1
ответ
Обширные коллекции Scala
У меня есть Seq[(A, B)], Я хотел добавить неявный метод в такие коллекции, чтобы я мог сделать .toMultiMap чтобы вернуть Map[A, Seq[B]], Это была моя первая попытка: implicit class PairsExtensions[A, B](t: Traversable[(A, B)]) { def toMultiMap: Map[…
22 мар '16 в 00:49
0
ответов
Как установить границы типа AnyRef, чтобы сделать его только классом случая
Предположим, что у меня есть несколько случаев case class Foo(i: Int) case class Bar(s: String) Я хочу определить некоторые функции, которые принимают A: AnyRef в качестве параметра. Но! Я хочу установить границы с: A - AnyRef, но не Объект A - AnyR…
02 авг '18 в 10:06
1
ответ
Использование универсального типа Scala при создании набора данных Apache Spark
Следующий код создает пустой набор данных в Spark. scala> val strings = spark.emptyDataset[String] strings: org.apache.spark.sql.Dataset[String] = [value: string] Подпись empty Dataset является.. @Experimental @InterfaceStability.Evolving def emp…
14 мар '17 в 09:04
2
ответа
Обобщения Scala - Почему Scala возвращает экземпляр супертипа вместо подтипа, когда используется ограничение типа?
Я пытаюсь преобразовать y во что-то, что может быть добавлено к x, где x - последовательность некоторых видов. scala> def foo[U <: Seq[T], T](x: U, y: T): U = x :+ y <console>:7: error: type mismatch; found : Seq[T] required: U def foo[U…
31 июл '15 в 05:14
1
ответ
Scala - доступ к типу параметризованного класса
Представьте, что у меня есть Коробка, в которой можно держать животных какого-то типа.В эту коробку могут быть помещены необработанные данные, которые следует преобразовать / сериализовать в животных того же типа, что и те, которые уже есть в коробк…
14 апр '18 в 19:23
0
ответов
Рефлексивно определяя совместимость дженериков Scala
Учитывая тип цели (скажем, List[String]) и некоторый объект o, цель состоит в том, чтобы найти метод o с возвращаемым типом, который совместим с целевым типом. В случае отсутствия обобщений это можно проверить, сравнив целевой тип и тип возвращаемог…
09 июл '17 в 09:16
2
ответа
Универсальная функция Scala... с использованием T в функции
Я немного запутался, почему приведенный ниже код не работает: implicit val connectReads: Reads[ConnectCommand] = ( (JsPath \ "uuid").read[String] )(ConnectCommand.apply _) private def generateMessage[T](json: JsValue) = json.validate[T] match { case…
11 июн '15 в 00:24
1
ответ
Обобщения Scala в возвращаемом значении функции
У меня есть эти классы определены. trait ResultTrait { } case class PostResult ( @Key("_id") id: String, success: String, errors: Seq[String] = Seq.empty ) extends ResultTrait case class PostError ( message: String, errorCode: String ) extends Resul…
12 апр '15 в 22:57
1
ответ
Как загрузить неявный Manifest из поля полиморфного типа
Я пытаюсь построить интерпретатор для моего ADT, но я не знаю, как решить проблему загрузки неявных манифестов хорошим способом. sealed trait Polymorphic[T] case class Type1[T: Manifest](field1: T) extends Polymorphic[T] case class Type2[T: Manifest…
10 ноя '16 в 23:00
1
ответ
Расширение универсального типа с помощью упорядоченной черты приводит к тому, что компилятор sbt выдает ошибку "расходящегося неявного расширения для типа"
У меня есть черта, реализующая упорядоченную черту Scala: package stackQuestions trait ValueTrait[TYPE] extends Ordered[ValueTrait[TYPE]]{ def value: Double } и подкласс: package stackQuestions class Value[A](list: List[A], function: (A, A) => Do…
01 сен '18 в 07:41
1
ответ
Расширение универсальных Serializables с неявными преобразованиями
Я пытаюсь добавить методы расширения Serializable типы и, кажется, есть дыра в моем понимании класса. Вот фрагмент из основ того, что я пытаюсь сделать: class YesSer extends Serializable class NoSer implicit class SerOps[S <: Serializable](s: S) …
29 ноя '16 в 20:18
1
ответ
Scala Определите универсальный класс, который принимает только классы дел
Как определить универсальный класс в Scala, как я могу убедиться, что параметр типа 'A' должен быть классом case? class TypedCollection[A](name: String){} Контекст: Я пытаюсь определить универсальный класс-обертку TypedCollection для взаимодействия …
10 май '16 в 11:09
1
ответ
Правильно ли расхождения с актерами Акки?
Я часто сталкиваюсь со следующей проблемой при использовании дженериков и актеров Akka: trait AuctionParticipantActor[P <: AuctionParticipant[P]] extends StackableActor { override def receive: Receive = { case message: Handled => participant =…
01 окт '17 в 05:52
2
ответа
Возвращаемый класс, расширяющий общую черту в Scala
Скала код: trait Converter[S, T] { def convert(source: S): T } class StringDuplicatorConverter extends Converter[Integer, String] { override def convert(source: Integer): String = { source.toString + source.toString } } // whatever, the point is to …
22 июл '17 в 04:23
1
ответ
Ошибка вывода типа Scala
Я написал комбинированную функцию map-and-find, которая применяет функцию к Iterable и возвращает первый сопоставленный результат, для которого предикат имеет значение true: implicit class EnhancedIterable[A, B[X] <: Iterable[X]](it: B[A]) { def …
17 сен '17 в 15:38
1
ответ
Размышления о типе членов?
Я знаю, что это возможно: import scala.reflect._ trait Foo[A] def isDouble[A: ClassTag](foo: Foo[A]) = classTag[A].runtimeClass == classOf[Double] object Foo1 extends Foo[Double] object Foo2 extends Foo[String] assert(isDouble(Foo1)) assert(!isDoubl…
29 янв '16 в 22:22
2
ответа
Объявите универсальный класс в Scala без квадратных скобок
Читая эту статью, я пришел к следующему синтаксису: implicit val slaveCanRead: Slave HasPrivilege Read = null Автор говорит: Кроме того, пожалуйста, не то Slave HasPrivilege Read это просто еще одна запись для HasPrivilege[Slave, Read] Сохраняя прим…
20 окт '17 в 12:24
2
ответа
Strange Scala "Несоответствие типов" для кортежей
У меня есть функция map который занимает Parser и функция, определенная следующим образом: def map[T1, T2](parser: Parser[T1], func: T1 => T2): Parser[T2] Я создал Parser тип объекта [(Char, Char)] и функция (Char, Char) => String, val parser[…
20 июл '18 в 07:00
1
ответ
Несоответствие типов черт Scala
У меня есть некоторая иерархия Kafka Channel, которую я использую в своем проекте: Моя базовая черта: trait SendChannel[A, B] extends CommunicationChannel { def send(data:A): B } Теперь у меня есть общая кафка, отправляющая канал вроде trait CommonK…
25 сен '17 в 17:27
1
ответ
Self-тип не соответствует базовому классу
Используя следующий код: trait Hello[B <: Baz[_, _]] trait World[F <: Foo] { self: Hello[Baz[F, _]] => def foo: F } trait Baz[F <: Foo, B <: Bar] trait Foo trait Bar case class BasicHello() extends Hello[BasicBaz] with World[BasicFoo]…
11 июл '17 в 00:41