Описание тега covariance
Ковариантность, контравариантность и инвариантность описывают, как существующая иерархия наследования типов изменяется при некотором преобразовании (например, использовании в дженериках). Если преобразование сохраняет порядок исходной иерархии, оно является "ковариантным". Если он переворачивает его, это "контравариантно". Если он его сломает, он "инвариантен".
1
ответ
R's `chol` отличается от MATLAB`cholcov`. Как сделать разложение ковариантности по Холецкому?
Я пытался воспроизвести разложение ковариантности в R по типу холески - как это делается в Matlab, используя cholcov(), Пример взят из https://uk.mathworks.com/help/stats/cholcov.html. Результат оригинала cholcov() функция как их пример: T = -0.2113…
23 ноя '16 в 16:20
2
ответа
Полиморфизм, наследование и универсальный C#: невозможно преобразовать подкласс в супертип
У меня проблема с абстрактным классом и универсальным в C# (я обычно пишу на Java): вот код, который я хотел бы использовать: public interface InterfaceResult {...} public abstract class Result : InterfaceResult {...} public class ResultA : Result {…
04 авг '16 в 08:44
2
ответа
Я действительно не понимаю эту вещь со-контравариантности... У меня не может быть как обобщенных методов get, так и set?
Я думаю, что я объясню мои проблемы с некоторыми примерами.. interface IModel {} class MyModel : IModel {} interface IRepo<T> where T: IModel { } class Repo : IRepo<MyModel> { } // Cannot implicitly convert.. An explicit convertion exist…
09 ноя '10 в 14:34
4
ответа
C# Ковариация по типам возвращаемых подклассов
Кто-нибудь знает, почему ковариантные типы возврата не поддерживаются в C#? Даже при попытке использовать интерфейс компилятор жалуется, что это не разрешено. Смотрите следующий пример. class Order { private Guid? _id; private String _productName; p…
10 фев '12 в 22:45
2
ответа
Вывод универсального типа в C# по сравнению с ковариацией - ошибка или ограничение
Когда универсальный метод с зависимыми параметрами выводит тип, в некоторых случаях он дает неожиданные результаты. Если я указываю тип явно, все работает без каких-либо дальнейших изменений. IEnumerable<List<string>> someStringGroups = …
27 июн '17 в 09:50
2
ответа
Вопрос.net 4 дженериков
У меня есть следующая структура класса: public class A : AInterface { } public interface AInterface { } public class B<T> : BInterface<T> where T : AInterface { public T Element { get; set; } } public interface BInterface<T> where …
29 дек '09 в 03:57
2
ответа
Как я могу сделать аналог Either?
Компилятор жалуется слева (e): выражение типа Left(List[ServiceError, Nothing]) не соответствует ожидаемому типу Either[E, R] sealed trait ServiceResult[+E <: List[ServiceError], +R ] { def toEither: Either[E , R] = this match { case Success(a) =…
20 фев '15 в 11:16
1
ответ
Методы определения временной ковариации среди многих временных рядов?
Мы пытаемся определить синхронность изменения химического состава воды среди нескольких сотен участков. Для каждого сайта у нас есть временной ряд концентрации. Мы хотели бы количественно определить общую временную ковариацию (концентрации повышаютс…
02 май '18 в 16:55
1
ответ
Многомерный IReadOnlyDictionary, типизированный с использованием интерфейса для внутреннего типа значения
Это немного сложно выразить словами, поэтому я объясню на примере. Следующий код не компилируется: var data = new[] { new {Item = "abc", Values = new[] {1,2,3}}, new {Item = "def", Values = new[] {1,2,3}}}; IReadOnlyDictionary<string, IReadOnlyDi…
19 авг '13 в 17:15
6
ответов
Почему IEnumerable<T> имеет только ковариантный флаг "out", а не "in" C#?
Мне было интересно, почему IEnumerable<T> имеет только out а не in контрвариантный флаг? public interface IEnumerable<out T> Я могу понять out на этом примере: IEnumerable<string> strings = new List<string>(){"a","b","c"}; IE…
07 май '12 в 08:38
1
ответ
Как сделать ковариант Consumer<? расширяет базу> работа?
Это наименьший пример кода, который я мог бы предложить для иллюстрации проблемы: public void consumeDerived(Consumer<Derived> derivedConsumer, Derived derivedParameter) { consumeBase(derivedConsumer, derivedParameter); } public void consumeBa…
08 июн '18 в 12:18
1
ответ
Основная функция N ков / контравариантность
У меня есть в значительной степени код, организованный так: class Person(name: String, val addr: Int) { def distance(that: Person) = this.addr - that.addr } class Employee(_name: String, role: String, _addr: Int) extends Person(_name, _addr) { def s…
24 июн '15 в 13:06
1
ответ
Ковариантность нарушена в массивах C#?
Рассмотрим следующий общий интерфейс ITest с параметром ковариантного типа Tродовой класс Test реализуя интерфейс и класс A и с подклассом B: interface ITest<out T> { T prop{ get;} } class Test<T> : ITest<T> { public T prop{ get { …
14 май '13 в 12:16
3
ответа
Дженерики: Список<? extends Animal> - это то же самое, что List<Animal>?
Я просто пытаюсь понять extends Ключевое слово в Java Generics. List<? extends Animal> означает, что мы можем заполнить любой объект в List который является Animal тогда следующее не будет означать то же самое: List<Animal> Может кто-ниб…
04 апр '10 в 18:01
2
ответа
C# .Net Covariance - еще раз для старых времен?
Итак, у нас есть это: public interface IWidget { int Id { get; set; } } public class Widget : IWidget { public int Id { get; set; } } public class WidgetProcessor { public static void ProcessWidgets1(IList<IWidget> widgets) { } public static v…
21 мар '13 в 15:52
1
ответ
Скрытая марковская модель Эмиссионная вероятность Ковариация является тождественной матрицей?
При использовании HMM должна быть установлена вероятность выбросов для каждого состояния. Если он не установлен, ковариация будет единичной матрицей. Это ковариация по умолчанию в большинстве библиотек HMM, которые я использовал. Что это означает,…
12 апр '16 в 08:54
1
ответ
Суммирование отклонений / Значение np.cov с использованием Python/Numpy
Использование Python: Итак, у меня есть DataFrame с именем File, в котором я хочу найти общую дисперсию одного из столбцов "Цены". Для формулы дисперсии я понимаю, что вы должны включить ковариацию. Я читал, что np.cov даст ковариационную матрицу. О…
13 янв '14 в 21:30
2
ответа
В Scala, каким должен быть тип карты из строки в класс case и карта из строки в функции, принимающая эти классы case в качестве входного параметра?
Сценарий, который я пытаюсь смоделировать, выглядит следующим образом. У меня есть пара классов, которые отличаются по своим параметрам, но все они расширяют эту черту Entity, // case classes trait Entity case class E1(..params..) extends Entity cas…
23 сен '15 в 21:31
0
ответов
Scala Generics Covariance
Я пытаюсь реализовать канал, в котором вы отправляете изображение и выполняете различные процессы, добавляя информацию способом. Каждый шаг может нуждаться в информации из предыдущего шага, и информация может сильно отличаться. Для одного шага могут…
20 май '18 в 13:51
1
ответ
Кастинг массива в Java? (ковариация и [LObject)
Мой вопрос, как точно происходит процесс приведения в Java? Предположим, у нас есть User[] users = new User[2];//<-- here we get at runtime [LUser class Object[] objects = (Object[]) users;//<-- here we get at runtime [LObject class public cla…
19 июл '18 в 22:29