Вопросы по теме 'contravariance'
Как определяется тип данных параметра типа в ковариации и контравариантности?
Я читал книгу Java Generics and Collections Мориса Нафталина, Филипа Вадлера, и в первых двух главах у меня в голове возникли сомнения. Я не мог разобраться в ответах.
В звонке:
public static <T> void copy(List<? super T> dst,...
489 просмотров
schedule
23.11.2021
Generics in / out для абстрактного контейнера в Kotlin?
Я создаю абстрактный класс инструментов, который работает с другим набором внешних классов (не контролируемых мной). Внешние классы концептуально похожи в определенных точках интерфейса, но имеют разный синтаксис для доступа к своим аналогичным...
80 просмотров
schedule
06.10.2021
Странный пример правил отклонения для делегатов
В сообщениях блога Эрика Липперта о ковариации и контравариантности или дисперсии для краткости, а также в таких книгах, как 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 просмотров
schedule
14.04.2022
Тип аргумента контравариантного метода
wiki Contravariant_method_argument_type говорит о том, что метод переопределения имеет тип без правила подтипа. язык, кроме одного, поддерживает контравариантный тип аргумента. Я также не могу придумать никакой пользы от этого.
пример:...
1176 просмотров
schedule
12.04.2022
Почему контравариантные типы параметров в Java не разрешены для переопределения?
При переопределении метода суперкласса Java позволяет возвращаемому типу быть ковариантным.
Почему контравариантные типы параметров, напротив, не разрешены при переопределении методов?
6187 просмотров
schedule
22.04.2022
Каковы преимущества контравариантности в 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 просмотров
schedule
25.05.2022
Дженерики Scala: ковариантность/контравариантность в двухуровневой структуре данных
У меня есть алгоритм, который работает с индексированными последовательностями некоторых объектов: он получает две такие последовательности и должен вывести одну результирующую последовательность. Я хотел бы, чтобы он мог работать по крайней мере с:...
263 просмотров
schedule
29.05.2022
Внутренняя реализация AsEnumerable() в LINQ
У меня есть два вопроса:
Вопрос 1. Предыстория: при просмотре реализации метода AsEnumerable() в LINQ от Microsoft я заметил следующее:
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource>...
578 просмотров
schedule
22.06.2022
Примеры хороших реальных вариантов использования ковариации и контравариантности в 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