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

Параметрический полиморфизм и полиморфизм подтипов F#
В чем разница (если она есть) между этими двумя подписями типа F#? UseTheStream<'a when 'a :> Stream> : 'a -> unit и UseTheStream : (stream : Stream) -> unit Означают ли они одно и то же в данном случае? msdn...
1463 просмотров

Необработанный тип и подтип
Рассмотрим следующий код: 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 } }...
169 просмотров
schedule 02.04.2024

Как определить подтипы в Isabelle и что они означают?
Вопрос о подтипах в Изабель очень длинный здесь . Итак, мой простой вопрос заключается в том, как я могу определить тип B как подтип A, если я определяю A, как показано ниже: typedecl A Делая это, я хотел бы сделать все операции и...
301 просмотров
schedule 05.03.2022

Подмножество против подтипа в ООП
Если «A» является подтипом «B», это означает, что «A» наследует все поля и методы «B» и в дополнение к этому «A» имеет свои собственные методы и поля. Итак, «А» следует рассматривать как надмножество «В»? Насколько действительна интерпретация...
340 просмотров
schedule 04.05.2023

Eiffel: ковариантные недопустимые типы, передаваемые в качестве аргументов?
(выделено мной) Ковариантное переопределение полей и функций не создает проблем, но ковариантное переопределение аргументов делает проблему, связанную с тем, что недопустимые типы могут быть переданы в качестве аргументов. Но...
188 просмотров
schedule 28.10.2023

Добавление общего списка Scala
У меня есть функция: def listSum[T](xs :List[T])(implicit abc : Numeric[T]): T = { xs.sum } val IntList: List[Int] = List (1, 2, 3, 4) val DList: List[Double] = List (1.0, 2.0, 3, 4) приведенный выше пример кода работает...
273 просмотров
schedule 06.06.2022

объединение типов в scala с подтипами: A|B ‹: A|B|C
Я хотел бы, чтобы тип A|B был подтипом A|B|C . Возможно ли это закодировать в Scala? Если да, то как? Я надеялся, что смогу implicitly[¬¬[IF] <:< T] скомпилировать ниже (исходный код здесь ), но это не так. Есть ли способ исправить...
502 просмотров
schedule 28.09.2022

Какие переопределенные методы вызываются?
Мне трудно понять решение данного вопроса. Я не могу понять на каждом шагу, какой из методов класса вызывается. Я попытался составить список объявленных типов a, b, c и фактических типов, а затем попытался выбрать переопределенные или...
58 просмотров
schedule 27.01.2023

Используйте суперметод с параметром подтипа
Я пытаюсь реализовать некоторую функцию в суперклассе, поэтому мне не нужно всегда повторять ее в своих дочерних элементах. Образец: trait Animal { def applyF(transition: Animal => Animal): Animal = transition(this) // Animal as param and...
46 просмотров

Относится ли интерфейс к специальному полиморфизму (т. е. к перегрузке) или полиморфизму подтипа?
https://wiki.haskell.org/Polymorphism говорит Специальный полиморфизм означает, что значение может принимать любой из нескольких типов, поскольку ему или используемому им значению присвоено отдельное определение для каждого из этих типов....
346 просмотров