Описание тега subtyping
In programming language theory, subtyping or subtype polymorphism is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability. Substitutability means that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype.
1
ответ
Тип сырья и подтип
Рассмотрим следующий код: public class MyClass<T>{ T data; public MyClass(T data){ this.data=data; } } public class Main{ public static void main(String[] args){ MyClass m= new MyClass<Integer>(3);// ok } } Я прочитал тему " Что такое не…
03 окт '13 в 05:03
1
ответ
Подтип с указателями функций, структурами, объединениями и перечислениями
Предисловие: Да, это домашнее задание. Я работал над этим в течение последней недели или около того, и поиск в Google не помог. Я не ищу кого-то, кто бы закончил мою домашнюю работу для меня, я больше беспокоюсь о понимании материала и просто ищу лю…
04 май '15 в 02:12
1
ответ
Просмотр специализации / подтипа универсального в polyml после приложения функтора
В следующей программе мы знаем, что valStr.valueпредполагает подтип pair универсального типа t, Тем не менее, когда я рассматриваю это poly тип показан как t, Есть ли способ, которым я могу видеть в poly интерпретатор, который t был специализирован …
30 авг '15 в 06:23
2
ответа
Определить внешний ключ в Postgres для подмножества целевой таблицы
Пример:Я имею: Table A: int id int table_b_id Table B: int id text type Я хочу добавить проверку ограничения на столбец table_b_id, который будет проверять, что он указывает только на строки в таблице B, значение их типа которых равно 'X'.Я не могу …
22 сен '15 в 06:31
1
ответ
Машинописные дженерики. Не удается передать экземпляр B аргументу a: T, где T расширяет B. Почему?
У меня урок: class X<T extends B> [...] // this.p.a :: B | null methodA(a: T):void {[...]} methodB(): void { if(this.p.a){ // :: B this.methodA(this.p.a) // Error Как видите, я передаю T быть любого типа, пока он распространяется B, а затем я …
29 авг '18 в 16:14
1
ответ
@uncheckedVariance в Котлине?
Мартин Одерский в своем выступлении " Компиляторы баз данных" представляет интересный случай из дисперсионного угла: class Tree[-T] { def tpe: T @uncheckedVariance def withType(t: Type): Tree[Type] } T определяется как контравариантный, потому что п…
11 апр '16 в 20:52
1
ответ
Преобразование ограниченного подстановочного знака в неограниченный подстановочный знак в универсальном типе является ошибкой (X<Y <? Расширяет T >> до X<Y <? >>
Рассмотрим этот пример: private <T> void m(Class<? extends T> k, Set<Class<? extends T>> sk) { Class<?> ku = k; Set<Class<?>> sku = sk; // <-- Type mismatch: cannot convert from // Set<Class<? exten…
05 окт '15 в 22:32
2
ответа
ArrayList объектов и аннотация
Я пытаюсь изучать подстановочные знаки в Java. Здесь я пытаюсь изменить printCollection метод, так что он будет принимать только класс, который расширяет AbstractList, Это показывает ошибку в комментарии. Я пытался использовать ArrayList объектов, о…
16 авг '15 в 05:34
0
ответов
Почему нельзя использовать функции с необязательными аргументами для функций без них?
У меня есть следующие простые функции: type t = unit -> unit let f () = () let g ?opt:_ () = () С этими функциями определены, (f :> t) успешно, но (g :> t) завершается со следующей ошибкой: Ошибка: это выражение не может быть приведено к ty…
11 дек '18 в 19:11
2
ответа
Как я могу определить класс объекта в Scala?
Мне нужно проверить, что у строго экземпляр bar, а не foo. Как я могу сделать это в Scala? trait foo {} trait bar extends foo {} val x = new foo {} val y = new bar {} x.isInstanceOf[foo] // true x.isInstanceOf[bar] // false y.isInstanceOf[bar] // tr…
03 май '15 в 20:11
0
ответов
Добрый вывод с подтипом
Есть ли примеры систем логического вывода с подтипами? В системах типов, таких как Haskell, нет никакого полиморфизма на добром слое. Как правило, определение типа с помощью параметрического полиморфизма представляет собой сложную проблему, но поско…
07 фев '19 в 17:22
2
ответа
Тип аргумента контравариантного метода
Вики Contravariant_method_argument_type говорит, что метод переопределения имеет правило подтипа в качестве типа функции, но нет языка, кроме одного поддерживающего контравариантного типа аргумента. Я также не в состоянии придумать какую-либо идею о…
23 мар '14 в 04:09
1
ответ
Обобщенное параметризованное определение в интерфейсе и обоснование класса реализации
Я не могу понять концепцию реализации субтипирования / интерфейса по отношению к генерикам. Пожалуйста, объясни. У меня была следующая структура: `ICommand -> ProducerConsumerCommand` IProducerConsumer -> SimpleProducerConsumer Насколько я пон…
02 апр '14 в 06:29
1
ответ
Внешний ключ на две колонки
Для моего школьного проекта мне нужно было создать базу данных. Это мой ERD. В SQL я создаю таблицу категорий: CREATE table "Category" ( "Id" NUMBER(5) NOT NULL, "SubCategoryId" NUMBER(5) NULL, "Name" VARCHAR2(32) NOT NULL, CONSTRAINT "Category_pk" …
03 окт '15 в 08:09
2
ответа
Проектирование базы данных, включая людей и организацию
Недавно я обнаружил метод подтипа / супертипа в проектировании реляционных баз данных и, следовательно, этот вопрос: является ли это правильный дизайн, смешанный с методом проектирования подтипа / супертипа? Прежде чем я обратился persons а также or…
06 май '14 в 12:50
0
ответов
Подтип в программировании с более конкретным аргументом
Предположим, у нас есть A' :< A а также B :< B' согласно которому :< я имею в виду, что A' более конкретно, чем A, Правило подтипирования гласит, что, удовлетворившись этим, мы заключаем, что A -> B :< A' -> B', Это прекрасно. Одна…
26 июн '18 в 15:23
1
ответ
Могу ли я сказать "если класс A является подклассом класса B, тип A должен быть подтипом типа B"?
Я кое-что понимаю об отношениях между subtype а также subclass, но я не уверен, что они правильные. конкретные классы (не общий / класс более высокого порядка) Скажем, в Java или Scala, если я объявлю некоторые конкретные классы или типы: class B cl…
23 июн '14 в 00:36
5
ответов
Почему это так. a не считается подтипом Int, в то время как я могу использовать выражение для типа a. ожидается где-нибудь один из типа Int?
Рассмотрим следующую пару определений функций, которые проходят проверку типов: a :: forall a. a a = undefined b :: Int b = a Т.е. выражение типа forall a. a может быть использован, когда один из типа Int ожидается. Это мне кажется очень похожим на …
23 сен '15 в 18:41
2
ответа
Где спецификация Java говорит, что List<T> назначает List<? супер T>?
Предположим, класс B наследует от класса A, Следующее является законной Java: List<A> x; List<? super B> y = x; С точки зрения спецификации это означает, что List<A> assignsTo List<? super B>, Тем не менее, у меня возникли пр…
24 апр '15 в 20:39
2
ответа
Динамический конструктор, вызывающий в Java?
Предположим, у меня есть 4 класса: A, B, SA а также SB где B extends Aа также SB extends SA, Учебный класс A имеет следующий конструктор: private SA a; public A() { a = new SA(); } Очевидно, когда я вызываю конструктор для класса B и с тех пор B ext…
24 окт '13 в 20:05