Википедия раньше говорила* о вводе утки: В программировании с языками объектно-ориентированного программирования утиный ввод является стилем динамического контроля типов в который текущий набор объекта...
В Scala я могу определить структурные типы следующим образом: введите Pressable = {нажатие определения (): Единица} Это означает, что я могу определить функцию или метод, который берет в качестве аргумента что-то, что является Pressable...
Давайте иметь следующий пример: общедоступный класс X {} общедоступный класс Y {} общедоступный класс Z {} общедоступный делегат IDictionary <Y, IList <Z>> Панель (IList <X> x, интервал i); открытый интерфейс IFoo {...
Я пытаюсь записать, что дженерик интерполирует метод, который работает над любым типом, который имеет два метода, * и +, как это: Контейнер черты {тип V = {определение * (t: Дважды): V определений + (v: V): V}...
Почему это печатает wtf? Разве сопоставление с образцом не работает над структурными типами? "привет" соответствие {случай s: {определение doesNotExist (я: Интервал, x: Список [_]): Дважды} => println ("wtf?") случай _ =>...
Я пытаюсь определить структурный тип, определяющий любой набор, который имеет "добавить" метод (например, набор Java). Используя это, я хочу определить несколько функций высшего порядка, которые воздействуют на...
Я слышал, что Хаскелл описал как структурную типизацию. Записи являются исключением из этого, хотя, как я понимаю. Например, foo не может быть вызван с чем-то типа HRec2, хотя HRec и ...
Каковы различия между классами типов и абстрактными типами данных? Я понимаю, что это базовая вещь для программистов на Haskell, но я из среды Scala и буду интересоваться примерами ...
Иногда у нас есть несколько классов, которые имеют некоторые методы с одинаковой сигнатурой, но не соответствуют объявленному интерфейсу Java . Например, как JTextField, так и JButton (среди нескольких других ...
Я играл со структурными типами Scala, когда обнаружил то, что мне кажется ошибкой. Вот мой код: введите toD = { def toDouble: Double }
def foo(t: toD) = t.toDouble
foo(5) И я получил...
У меня есть два объекта, ObjectA и ObjectB, оба с методом update(). Я хочу написать функцию, которая принимает либо ObjectA, либо ObjectB (но не другие типы). Концептуально, это то, что я пытаюсь...
Если функция принимает структурный тип, она может быть определена как: def doTheThings(duck: { def walk; def quack }) { duck.quack } или type DuckType = { def walk; def quack }
def doTheThings(duck: DuckType) {...
После просмотра интервью с Ричем Хики о протоколах в Clojure 1.2 и очень мало зная о Clojure, у меня есть несколько вопросов по протоколам Clojure: предназначены ли они для выполнения то же самое ...
Why cannot Scala optimize the following: a. implicit def whatever[A](a: A) = new { ... } to: b. class some$generated$name(a: A) { ...
}
implicit def whatever[A](a: A) = new some$generated$name(...
I needed some recursive structural type in some piece of code using with traits and the structural type as type parameter constraint. It worked fine, but later I learned Scala does not support ...