Вопросы по теме 'contravariance'

Как определяется тип данных параметра типа в ковариации и контравариантности?
Я читал книгу Java Generics and Collections Мориса Нафталина, Филипа Вадлера, и в первых двух главах у меня в голове возникли сомнения. Я не мог разобраться в ответах. В звонке: public static <T> void copy(List<? super T> dst,...
489 просмотров

Generics in / out для абстрактного контейнера в Kotlin?
Я создаю абстрактный класс инструментов, который работает с другим набором внешних классов (не контролируемых мной). Внешние классы концептуально похожи в определенных точках интерфейса, но имеют разный синтаксис для доступа к своим аналогичным...
80 просмотров

Странный пример правил отклонения для делегатов
В сообщениях блога Эрика Липперта о ковариации и контравариантности или дисперсии для краткости, а также в таких книгах, как C # in a Nutshell , говорится, что: Если вы определяете универсальный тип делегата, рекомендуется: Отметьте...
241 просмотров
schedule 14.11.2021

В каких случаях можно использовать контр-дисперсию? Зачем использовать ковариацию против наследования?
Может ли кто-нибудь привести пример, когда контр-дисперсия полезна? и зачем использовать ковариацию против наследования?
99 просмотров
schedule 08.09.2021

Ошибка компилятора С# 'Параметр должен быть безопасным для ввода. Недопустимая дисперсия. Параметр типа 'T' должен быть неизменно действительным для Expression‹TDelegate› '
Я хочу использовать свой интерфейс ковариантно (Интерфейс должен быть ковариантным), но компилятор выдает мне ошибку Ошибка компилятора c#: - 'Параметр должен быть безопасным для ввода. Недопустимая дисперсия. Параметр типа «T» должен быть...
1130 просмотров
schedule 18.03.2022

Есть ли альтернативы использованию ковариантного типа в контравариантной позиции?
Я ищу шаблон для создания новых экземпляров из существующих, чтобы я мог вычислить UltimateBase плитки, пройдя над ней иерархию. Я пробовал следующее, но получаю «Ковариантный тип A находится в контравариантной позиции» в параметре base метода...
444 просмотров
schedule 28.03.2022

Ковариация и контравариантность одного аргумента типа
В спецификации C # указано, что тип аргумента не может быть одновременно ковариантным и контравариантным. Это очевидно, когда при создании ковариантного или контравариантного интерфейса вы украшаете параметры типа «out» или «in» соответственно. Не...
3038 просмотров
schedule 07.04.2022

Почему параметр находится в контравариантном положении?
Я пытаюсь использовать параметр ковариантного типа внутри признака для создания case-класса следующим образом: trait MyTrait[+T] { private case class MyClass(c: T) } компилятор говорит: error: covariant type T occurs in contravariant...
7198 просмотров

Тип аргумента контравариантного метода
wiki Contravariant_method_argument_type говорит о том, что метод переопределения имеет тип без правила подтипа. язык, кроме одного, поддерживает контравариантный тип аргумента. Я также не могу придумать никакой пользы от этого. пример:...
1176 просмотров

Почему контравариантные типы параметров в Java не разрешены для переопределения?
При переопределении метода суперкласса Java позволяет возвращаемому типу быть ковариантным. Почему контравариантные типы параметров, напротив, не разрешены при переопределении методов?
6187 просмотров

Каковы преимущества контравариантности в JAVA
Я хотел бы спросить, каковы преимущества использования контравариантности в JAVA? Предположим, что у нас есть два метода: public static <T> void f1(List<? super T> list, T item){ list.add(item); } public...
79 просмотров
schedule 07.05.2022

Почему ковариация / контравариантность C # 4.0 ограничена параметризованным интерфейсом и типами делегатов?
Является ли это ограничением среды CLR или существуют проблемы совместимости с существующим кодом? Связано ли это с испорченной дисперсией объединения делегатов в C # 4.0? Изменить: можно ли иметь язык, использующий ко- / контравариантность без...
650 просмотров
schedule 19.05.2022

Ковариация и контравариантность в интерфейсах
Вот пример использования ковариации и контравариантности для дженериков. class Program { static void Main(string[] args) { ICovariant<Apple> alCov = new Covariant<Apple>();...
506 просмотров
schedule 23.05.2022

как мне сделать так, чтобы компилятор TypeScript рад дисперсии при вызове общих обработчиков (например, промежуточного программного обеспечения ExpressJS)
отказ от ответственности: я все еще немного не уверен в дисперсии в целом... Моя ситуация следующая: // index.ts import express from 'express'; import {Request, Response} from 'express'; const app = express(); app.use(handler); interface...
993 просмотров

Дженерики Scala: ковариантность/контравариантность в двухуровневой структуре данных
У меня есть алгоритм, который работает с индексированными последовательностями некоторых объектов: он получает две такие последовательности и должен вывести одну результирующую последовательность. Я хотел бы, чтобы он мог работать по крайней мере с:...
263 просмотров

Внутренняя реализация AsEnumerable() в LINQ
У меня есть два вопроса: Вопрос 1. Предыстория: при просмотре реализации метода AsEnumerable() в LINQ от Microsoft я заметил следующее: public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource>...
578 просмотров

Примеры хороших реальных вариантов использования ковариации и контравариантности в C # 4.0?
До того, как вышел C # 4.0, меня очень волновали ковариантность и контравариантность. Это способствовало моей любви к теоретической правоте! Однако теперь, когда он вышел, и я вернулся к написанию нормального, повседневного, скучного кода, я...
3668 просмотров
schedule 19.07.2022

Почему параметры контравариантного типа в параметрах функции считаются вне позиции?
Мне трудно описать на английском языке, но вот проблема: class Consumer<in T> { fun consume(t: T) {} } class Accepter<in T>() { // ERROR: Type parameter T is declared as 'in' but occurs in 'out' position in type...
160 просмотров
schedule 06.08.2022

Есть ли способ определить дисперсию интерфейса / делегата в C # 4.0?
Итак, теперь, когда у нас есть общая ковариация и контравариантность для интерфейсов и делегатов в C #, мне было просто любопытно, если задано Type , вы можете выяснить ковариацию / контравариантность его общих аргументов. Я начал пытаться написать...
686 просмотров
schedule 24.08.2022

Scala - Co / Contra-Variance применительно к неявному выбору параметров
У меня такая черта: trait CanFold[-T, R] { def sum(acc: R, elem: T): R def zero: R } С функцией, которая работает с ним так: def sum[A, B](list: Traversable[A])(implicit adder: CanFold[A, B]): B = list.foldLeft(adder.zero)((acc,e)...
528 просмотров
schedule 09.09.2022