Для того, чтобы практиковать с Julia, я реализую небольшой модуль, содержащий некоторые фиксированные решатели ODE (Euler, Runge Kutta, Bulirsch Stoer) с использованием интерфейса итератора.Подтипы конкретных типов Julia
Моя идея состояла в том, чтобы использовать множественную диспетчеризацию, чтобы применить правильный метод функции next
к конкретному итератора, однако Эйлера и Рунге-Кутта типа итератора (на самом деле immutable
) старые одни и те же данные.
Так что я должен выбрать между:
- создать два
immutable
типа идентичны для имени или - обрешетки уникального
immutable
с дополнительным полем, кроме (скажетsolving_method
) и использовать ветвление вместо многократной отправки в обратитесь к этому выпуску
Оба варианта кажутся неуклюжими для меня (в частности, второго, потому что поле solving_method
проверено на каждом итерате ион).
Чтение онлайн-дискуссии по поводу наследования в Юле я понял, что Джулия не имеет (и никогда не будет) подтипа конкретных типов, а это означает, что один не может «добавлять поля» к родительскому типу таким образом.
Но почему у меня нет подтипов конкретных типов только для отправки?