Здравствуйте, AlexRK, Вы писали:
ARK>Здравствуйте, LaPerouse, Вы писали:
ARK>>>Но есть ли нормальная замена union-типам? Все делать на классах?
LP>>А им требуется замена? По мне, это в чистом виде антипаттерн, к которому следует относится с большой осторожностью. ARK>Ну, например, возврат из функции — ошибки либо нормального результата.
Возвращать код ошибки — это прошлый век. Для ошибок есть исключения.
LP>>Добавил одно поле — и надо править еще N классов и модулей, где этот тип используется, такого ада даже в языке С двадцать лет назад в эпоху расцвета процедурного программирования не было. ARK>Это как раз преимущество — не забудешь, где еще не исправил.
foo (Foo val1 val2) = val1 + val2
Добавляем в Foo третье поле val3. Конкретно в функции foo это поле НЕ используется. Но мы должны ее изменить
foo (Foo val1 val2 val3) = val1 + val2
И таких функций по всему коду — море, в разных модулях и классах.
Социализм — это власть трудящихся и централизованная плановая экономика.