- T - надстройка над ним
Причем надстройка в общем смысле, то бишь может инстанс типа T содержит в себе единственное поле типа P, а может T - всего лишь синоним/alias для P, так что нельзя просто так конвертнуть T в какой-нибудь T2, который тоже надстройка над P
Например P - string. а T - email
Вот как в общем случае T можно назвать?
phantom type?
Мб на это похоже Это, как ни странно, все опять про гуиды - пытаюсь мысль сформулировать Что есть тупой контейнер на 16 байт - Uuid, а есть всякие построения поверх него, которые интерпретируют конкретные байтики этого контейнера как конкретные поля, согласно конкретной версии/варианта. А ля UuidVariant1Version4 И что Guid - это именно это самое построение, потому что в нем торчит в API конкретная раскидка полей под UuudVariant2Version4 Вот тупой контейнер можно обозвать primitive type, data container - а как построение поверх?
натягиваю сову на глобус на условном фшарпе с помощью фантомных типов type UuidVersion = | V1 | V2 | V3 | V3 type UUID = struct let bytes ... end type UUID<UuidVersion> = UUID let uuidv4: UUID<V4> = UUID.generateV4() let uuidv1: UUID<V1> = UUID.generateV1()
НУ ВСЁ, ПИЗДА РУЛЮ, ПОСЫПАЮ ГОЛОВУ ПЕПЛОМ
Всё, ты проиграл?
уйду в монастырь где варят виски
А гуиды в него добавляют?
только самые отборные
S(2) ≡ S(3) Пеано застрелился
Обсуждают сегодня