LINUX.ORG.RU

История изменений

Исправление 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 с девиртуализацией.