История изменений
Исправление
MOPKOBKA,
(текущая версия)
:
Трейты не являются типами.
А модули не являются типами в OCaml. Такое разделение не должно удивлять.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
dyn = рантайм, dyn = компилтайм.
Различия c Java есть, но говорить что trait это не интерфейс?
Даже примеры переведенные почти напрямую с Java работать будут: https://godbolt.org/z/4K49s6K7e
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
dyn = рантайм, dyn = компилтайм.
Различия c Java есть, но говорить что trait это не интерфейс?
Даже примеры переведенные почти напрямую с Java работать будут: https://godbolt.org/z/4K49s6K7e
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
dyn = рантайм, dyn = компилтайм.
Различия c Java есть, но говорить что trait это не интерфейс?
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
dyn = рантайм, dyn = компилтайм.
Различия есть, но говорить что trait это не интерфейс?
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
dyn = рантайм, dyn = компилтайм.
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже самое что и dyn Trait с девиртуализацией.
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность реализовывать ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже саоме что и dyn Trait с девиртуализацией.
Исправление
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
dyn Trait ... это отдельная сущность в языке для динамической диспетчеризации.
Как и в Ocaml есть отдельная возможность использовать первоклассные модули, которые и есть модули просто предоставляется возможность ДД.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже саоме что и dyn Trait с девиртуализацией.
Исходная версия
MOPKOBKA,
:
Трейты не являются типами.
А модули не являются типами в OCaml.
Ты не можешь создать объект определенного трейта, получить ссылку на трейт, не можешь указатель скастовать к указателю на трейт.
Тоже самое с интерфейсами.
Там нет никаких структур из указателей, никаких ни абстрактных, ни обычных классов.
Я про структуры из указателей не говорил, Trait без dyn это тоже саоме что и dyn Trait с девиртуализацией.