Описание тега multiple-dispatch
Техника полиморфного вызова методов, основанная на типах многих (или всех) аргументов. Сравните с single-dispatch, используемым в общих объектно-ориентированных языках, где методы могут быть полиморфными только по первому аргументу - разрешение времени выполнения a.doSomething(x, y, z) зависит только от типа a.
2
ответа
Многократная отправка с использованием дженериков
Я пытаюсь абстрагироваться от реализации моего интерфейса, предоставляя фабрику / конструктор с использованием обобщений. Тем не менее, я сталкиваюсь с проблемой множественных отправок и обобщений C# во время выполнения, которые делают что-то странн…
12 фев '13 в 20:11
1
ответ
Как я могу указать тип для аргумента функции, не ограничивая его размеры?
В Julia я хочу указать тип аргумента функции в виде массива массивов. Так что я function foo{T <: Any}(x::Array{Array{T}}) но если я поставлю аргумент x в REPL, например: x = Array[[0,1],[1,2,3],[0,1,2,4]] затем он автоматически получает следующе…
21 янв '15 в 14:40
2
ответа
Есть ли разница между забавой (n::Integer) и забавой (n::T), где T <: целое число в производительности / генерации кода?
В Юлии я чаще всего вижу код, написанный как fun(n::T) where T<:Integer, когда функция работает для всех подтипов Integer, Но иногда я также вижу fun(n::Integer), что некоторые руководства утверждают, эквивалентно выше, в то время как другие гово…
02 май '18 в 14:40
1
ответ
Какой метод использовала Юлия?
Я определил следующую переменную julia> X = (1:10) * ones(1,10) которая определяет матрицу, в которой каждая строка равна одному и тому же числу, а числа в столбце увеличиваются с 1 до 10 на 1. Я хочу знать, какой метод использовал Юлию для функц…
01 фев '16 в 01:52
1
ответ
Поддерживает ли Java многократную отправку? Если нет, то как работает приведенный ниже код?
Поддерживает ли Java многократную отправку? Если нет, то как работает приведенный ниже код? Account.java public interface Account { public void calculateInterest(); } SavingsAccount.java public class SavingsAccount implements Account { } LoanAccount…
14 май '17 в 04:43
1
ответ
Как кодировать в словаре несколько функций разных типов
Я строю переводчик в F#. Я пытаюсь быть умным и обобщать интерпретацию примитивных операторов как вызовов функций (в данном случае как сокращений). Это идея: let reduce fx values = Array.reduce values fx let primitivesEnv = let r = Dictionary<str…
30 дек '15 в 16:33
3
ответа
Многократная отправка: концептуальная необходимость?
Интересно, следует ли включать в объектно-ориентированный язык концепцию множественной диспетчеризации (то есть встроенную поддержку, как будто динамическая диспетчеризация виртуальных методов распространяется и на аргументы метода), если ее влияние…
26 май '15 в 18:18
8
ответов
Является ли C# одной отправкой или несколькими языками отправки?
Я пытаюсь понять, что такое разовая и множественная отправка. Я только что прочитал это: http://en.wikipedia.org/wiki/Multiple_dispatch И из этого определения мне кажется, что C# и VB.Net являются множественными диспетчерскими, даже если выбор перег…
26 янв '09 в 14:17
5
ответов
Яблоки, апельсины и указатели на самый производный класс C++
Предположим, у меня есть куча фруктов: class Fruit { ... }; class Apple : public Fruit { ... }; class Orange: public Fruit { ... }; И некоторые полиморфные функции, которые действуют на указанный фрукт: void Eat(Fruit* f, Pesticide* p) { ... } void …
15 июн '10 в 22:05
5
ответов
Являются ли функции изменчивыми в нескольких системах диспетчеризации?
Правильно ли я понял, что в (большинстве? Некоторых?) Языках с несколькими диспетчеризацией каждый метод добавляется в функцию в определенный момент времени выполнения программы. Можно ли тогда сделать вывод, что множественная диспетчеризация как фу…
18 ноя '16 в 09:01
3
ответа
Многоцелевое решение с полной ремонтопригодностью
Может кто-нибудь придумать хороший способ реализовать множественную диспетчеризацию с чем-то вроде Object::foo перегрузки ниже? class A { public: virtual void accept (Visitor&) = 0; }; class B : public A { virtual void accept (Visitor&) over…
26 мар '15 в 18:39
2
ответа
Обойти статические методы диспетчеризации Java без шаблонов Double Dispatch/Visitor
Я использую класс Foo что обеспечивает эти методы: String overloadedMethod(Object) String overloadedMethod(Goo) Поскольку Java статически отправляет аргумент не получателя, я не могу просто передать свой value (который является Object, но может имет…
16 дек '08 в 09:41
4
ответа
Определение "перегруженных" функций в python
Мне очень нравится синтаксис "магических методов" или как они называются в Python, например class foo: def __add__(self,other): #It can be called like c = a + b pass Вызов c = a + b затем переводится в a.__add__(b) Можно ли имитировать такое поведен…
09 июл '12 в 07:41
9
ответов
Что такое - одиночная и множественная отправка (по отношению к.NET)?
Это так же, как перегрузка, если нет, не могли бы вы предоставить и пример каждого в C# Я прочитал ответы на аналогичный вопрос, заданный в SO ... Я не понял ответы, отправленные на него. Подобный вопрос задан здесь РЕДАКТИРОВАТЬ: С новым "динамичес…
26 янв '09 в 16:43
0
ответов
Недостатки многократной отправки
Я гуглил "Недостатки многократной отправки", но я не мог найти ничего действительно, что заставило меня задуматься: действительно ли это так прекрасно?
19 ноя '18 в 23:03
2
ответа
Решает ли новый тип "динамической" переменной в.NET 4.0 проблему отправки одного или нескольких методов в CLR?
Проблема одиночной отправки в основном знакома людям, занимающимся кодированием на статически типизированных языках, таких как Java и C#. Основная идея: В то время как полиморфизм времени выполнения позволяет нам отправлять вызовы правильного метода…
02 май '10 в 05:20
1
ответ
Определите две черты, такие, что функция должна существовать для декартового произведения двух наборов типов, которые ее реализуют.
Я хотел бы создать две черты, SaveSource а также SaveDestinationтак, что когда некоторые типы реализуют эти черты, функция: fn save(a, b) должны быть реализованы для всех a : SaveSource а также b : SaveDestination (и когда новый тип добавляется к Sa…
01 июн '17 в 18:12
2
ответа
C#: System.Type не является реальным типом? или: работа вокруг одной отправки
Я пытался обойти C# без полиморфной отправки, основанной на типе аргумента метода, и я столкнулся с тем, что вы не можете передавать типы. У меня в основном есть абстрактный класс Model который реализует два метода: IEnumerable<Decision> GetDe…
08 дек '14 в 15:16
7
ответов
Динамическая диспетчеризация (runtime-polymorphism) с перегруженными методами без использования instanceof
Я хочу сохранить объекты Arc а также Line в одном ArrayList, затем получите пересечение обоих. Вопрос в том, как я могу сыграть i а также j в своем первоначальном классе. я знаю это instanceof работает, но это был бы самый грязный метод. public clas…
31 окт '17 в 14:46
7
ответов
В чем разница между полиморфизмом и множественной отправкой?
... или это одно и то же? Я заметил, что у каждого есть своя собственная запись в Википедии: Полиморфизм, Многократная рассылка, но у меня возникают проблемы с различием понятий. Изменить: И как перегрузка вписывается во все это?
24 сен '08 в 02:20