Pull to refresh

Comments 5

Все-таки это скорее не перечисления, а вариантные типы или тегированные объединения. Еще названия - "алгебраический тип" (так и не понял смысл названия) или "тип-сумма" (в противоположность "типу-произведению" - обычной структуре).

В Swift это всё называется просто перечислением (enumeration), поэтому этот термин и использовался. То что оно является алгебраическим типом, согласен. Одно другому не мешает.

так и не понял смысл названия

Насколько я понимаю они называются так потому что, если обозначить через | | операцию, которая возвращает количество возможных значений для некоторого типа A (|A|), то мы получим:
- |A | B| = |A| + |B|, где A | B - это тип суммы;
- |A B| = |A| * |B|, где A B - это тип произведения.

Например: |Bool| = 2, а |Unit| = 1. Тогда |Bool | Unit| = 2 + 1 = 3; |Bool Unit| = 2 * 1 = 2.

ImplStrategy.singleton.rawValue == ImplStrategy(rawValue: "Resilent") // true

Похоже на опечатку и имелось в виду

ImplStrategy.resilent == ImplStrategy(rawValue: "Resilent") // true

Sign up to leave a comment.