Вопросы по теме 'subtyping'
Параметрический полиморфизм и полиморфизм подтипов F#
В чем разница (если она есть) между этими двумя подписями типа F#?
UseTheStream<'a when 'a :> Stream> : 'a -> unit
и
UseTheStream : (stream : Stream) -> unit
Означают ли они одно и то же в данном случае?
msdn...
1463 просмотров
schedule
04.05.2022
Необработанный тип и подтип
Рассмотрим следующий код:
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 просмотров
schedule
23.05.2024
Относится ли интерфейс к специальному полиморфизму (т. е. к перегрузке) или полиморфизму подтипа?
https://wiki.haskell.org/Polymorphism говорит
Специальный полиморфизм означает, что значение может принимать любой из нескольких типов, поскольку ему или используемому им значению присвоено отдельное определение для каждого из этих типов....
346 просмотров
schedule
06.11.2023