Описание тега implicits
Anything related to Scala implicit parameters or conversions
2
ответа
Две, казалось бы, идентичные семантики: одна неявно связывается, другая нет
Здравствуйте: я недавно изучал Scala (мой опыт работы в основном с C++ шаблонами), и я столкнулся с тем, чего в настоящее время я не понимаю в Scala, и это сводит меня с ума.:( (Кроме того, это мой первый пост в Stackru, где я заметил, что большинст…
30 май '11 в 08:12
1
ответ
Делает ли компилятор scala что-нибудь для оптимизации неявных классов?
Скажем, у нас есть неявный класс, такой как: implicit class RichString(str: String) { def sayHello(): String = s"Hello, ${str}!" } Мы можем использовать метод sayHello, как если бы он был определен в классе String "World".sayHello Оптимизирует ли ко…
10 апр '15 в 05:29
1
ответ
В чем преимущество Scala с привязкой к контексту над обычным параметром?
Я читаю о границах контекста и неявных параметрах, которые должны работать как классы типов. Примеры, которые я часто вижу Ordering[T], Что-то вроде: foo[T : Ordering](a: T, b: T) который является сахаром для foo[T](a: T, b: T)(implicit ord: Orderin…
06 мар '14 в 22:35
2
ответа
Расширенные ограничения типов в Scala - логические операторы и неявные параметры
У меня есть следующий код, который работает хорошо. package com.andrew object ExperimentWithTypeConstraints { def union[T](t: T)(implicit c: (T =:= String)) = t match { case s: String => println(s"Some nice string: $s") } def main(args: Array[Str…
27 мар '18 в 17:16
1
ответ
Бесконечная рекурсия с Shapeless select[U]
У меня была отличная идея (ну, это спорный вопрос, но, скажем, у меня была идея) для создания инъекции неявную зависимость проще в Scala. У меня проблема в том, что если вы вызываете какие-либо методы, требующие неявной зависимости, вы также должны …
02 июл '15 в 05:40
2
ответа
Тестирование двух бесформенных типов HList в scala на эквивалентность через неявные
Мне интересно проверить, являются ли две гетерогенные записи HList "эквивалентными"; то есть они имеют одинаковые пары ключ / вал, но не обязательно в том же порядке. Есть предопределенный предикат типа, который делает то, что EquivHLists делает во …
21 ноя '17 в 19:24
1
ответ
Почему неявный объект имеет приоритет над val в Scala 2.13-M5?
Мне интересно, является ли это ошибкой или ожидаемым поведением в Scala 2.13-M5. Следующий фрагмент компилирует и выводит "объект в объекте пакета": package object test { implicit val a: TS = new TS("val in package object") implicit object b extends…
30 авг '18 в 18:18
1
ответ
Обходной путь для импорта искровых последствий везде
Я новичок в Spark 2.0 и использую наборы данных в нашей базе кода. Я как бы замечаю, что мне нужно import spark.implicits._ везде в нашем коде. Например: File A class A { def job(spark: SparkSession) = { import spark.implcits._ //create dataset ds v…
16 авг '17 в 23:10
1
ответ
Проблемы с выводом типа скалы на работу
Общая цель: Предположим, к примеру, я хочу разработать очень подключаемый трекер проблем. Его базовая реализация может поддерживать только идентификатор заявки и описание. Другие расширения могут добавлять поддержку для других полей, но эти поля мог…
10 июл '12 в 06:53
1
ответ
Составление функций уровня типа с неявными свидетелями
Я экспериментирую с довольно сложными вычислениями на уровне типов. Там у меня есть несколько типов тегов (скажем, A, B, а также C) и работающие над ними функции, которые представлены неявными свидетелями с зависимыми от пути типами результатов: cla…
04 июн '15 в 13:34
1
ответ
Неявная передача значений из содержащих классов в поля классов?
Рассмотрим класс школы. Если бы мы добавили поле "Ученик" в школьный класс, можно ли было бы просто передать ссылку на объект "Школьник" в объект "Ученик". Так что вместо того, чтобы делать class School() { val pupil:Pupil = new Pupil(this) } Мы мог…
11 апр '17 в 15:32
2
ответа
Неявный поиск для Typeclass of None не совместим с Contravariant Typeclass of Option
Я не получаю следующий код для компиляции, и мне любопытно, что я сделал неправильно. Я определил Contravariant Jsonwriter Trait и функцию, принимающую неявных авторов: trait JsonWriter[-A] { def write(value: A): Json } object Json { def toJson[A](v…
09 авг '18 в 06:29
1
ответ
Неявные параметры нарушают вывод типа или вывода не хватает для их разрешения?
Вывод типа работает нормально в этом примере, пока я не добавлю неявное доказательство упорядочения. Правила вывода типов (слева направо и через списки параметров), похоже, удовлетворены, но есть что-то в отношении неявного, которое нарушает его. ca…
14 дек '14 в 09:39
3
ответа
В Scala, как мне сказать абстрактному базовому классу, что параметр типа T поддерживает неявное преобразование из Int (или Float, или...)?
У меня возникают трудности при переходе из мира C++/Templates в scala. Я привык иметь возможность использовать любую операцию с параметром шаблона T, которую я хочу, при условии, что все, что я использую для создания экземпляра T с, поддерживает эти…
12 фев '12 в 01:45
2
ответа
Неявное преобразование scala не работает
Я обнаружил странное явление: class A { val dual: A = this object T { implicit def doubleDual(t: T): dual.dual.T = t.asInstanceOf[dual.dual.T] implicit def justForTest(t: T): Int = 777 } class T } val a = new A val t = new a.T // import a.T._ val x:…
09 июн '18 в 12:11
1
ответ
Сворачивание по предоставленному HList
Я осознаю, что моей проблемой может быть "проблема XY", поэтому вот краткое резюме того, чего я хочу достичь. Допустим, у меня есть следующий тип: trait Provider[T] { def provide: T } Я хочу иметь возможность объединить несколько значений, предостав…
18 май '18 в 16:42
2
ответа
Как выразить (неявный conv: String => A) в качестве границы представления
Я спрашиваю себя, какой будет точка зрения, эквивалентная (implicit conv: String => A) Моей первой попыткой было просто объявить параметр типа A следующее: [String <% A] Но компилятор Scala жалуется на "not found: type A". Какие-либо предложен…
23 авг '11 в 21:17
2
ответа
Scala: Как импорт может предотвратить поиск неявного значения?
Я мог бы использовать предложения отладки неявного: Я хочу использовать неявное, x: type T trait HasT { implicit def x: T = ... } Но мне также нужен импорт подстановочных знаков из некоторого пакета foo, Я попробовал два разных способа введения обои…
20 ноя '16 в 21:43
1
ответ
Почему неявное разрешение Scala не удается для перегруженного метода с параметром типа?
Первый пример успешно находит неявное преобразование в метод foo(String)Однако, как только я добавлю параметр типа (см. fails) компиляция больше не разрешает это: object works { class A { def foo(): String = ??? } implicit class PimpedA(a: A) { def …
16 окт '15 в 04:33
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…
05 янв '17 в 23:59