Зачем тип выносят за рамку модуля? Что это дает?
Ну это более стандартный не MLный подход. MLный-это module Foo = ... и внутри уже type T =
Я обычно делаю module Foo type Foo Модуль открыл, а тип (если надо) явно объвляеш, неудобств не заметил
Я уже когда-то писал-что у меня данными типа напрямую могут воспользоваться только функции, что находятся в этом же модуле. Передавать и возвращать могут же любые внешние модули. Как итог-идет четкая инкаспуляция по модификации данных функциями только того модуля, где живет тип
Ну я обычно стараюсь спрятать, если это не API опять таки, т.к. реализация в таком случая находится за функциями модуля и очень удобно потом менять внутреннюю структуру данных и байтоёбить. Ну вот к примеру-есть у меня модуль RigidBody, снаруже красивые размеры можно получить в int-а по факту в потрохах обошелся одним байтом, т.к. ширина и высота не может быть больше трех объемов, а высота-7 объемов, иначе нужно использовать композитный RigidBody-под признак которого еще 1 бит используется.
даёт возможность писать обычный фарш код вместо статических мемберов
Обсуждают сегодня