ГОСТ Р HCO/HL7 27951—2016
в«Т)а).Ь» задает сначала преобразование значения переменой а в тип данных Т, а затем ссылку на свойство Ь
результата преобразования.
Неявное преобразование типа данных в выражениях высказываний осуществляется при возможности. Пусть
объявлено, что формальный аргумент свойства имеет типданных Т. Если в выражении он используется как факти
ческий аргумент типа U и при этом тип данных U не является расширением типа Т. то в случае, если для типа дан ных
U определено преобразование в тип данных Т. выполняется преобразование из типа данных Т в тип данных U.
В.1.9.3.1 Понижающее приведение
Понижающее приведение (demotion) представляет собой преобразование с потерей информации. В общем
случае это означает, что более сложный тип преобразуется в более простой.
Примером понижающего приведения может служить преобразование значения, имеющего тип данных ин
тервала (IVL). в простое количество (тип данных QTY), например, в центр интервала. В языке определения типов
данных понижающее приведение обьявляется с помощью ключевого слова demotion и имени результирующего
типа данных:
type Interval alias IVL f
demotion QTY;
В спецификации понижающего приведения должно быть указано, какая информация теряется и каковы глав
ные последствия потери информации.
В.1.9.3.2 Повышающее приведение
Повышающее приведение (promotion) представляет собой преобразование, при котором генерируется новая
информация. В общем случае это означает, что более простой тип преобразуется в более сложный.
Например, можно преобразовать значение количества, имеющее типданных (QTY). в значение интервала (тип
данных 1VL). Однако у типа данных IVL имеются дополнительные семантические свойства по отношению к типудан
ных QTY, а именно нижняя и верхняя граница. Таким образом, преобразование из типа данных QTY 8 типданных IVL
является повышающим приведением. Дополнительным свойствам типа данных QTY. отсутствующим у типа данных
IVL. должны быть присвоены новые значения (значения по умолчанию или вычисляемые значения). В спецификации
повышающего приведения должно быть указано, каковы будут новые значения и как они будут генерироваться.
Повышающее приведение типа данных QTY к типу данных IVL обьявляется с помощью ключевого слова
promotion и имени результирующего типа данных:
type Quantity alias QTY (
promotion IVL?
l ;
Обычно повышающее приведение определяется для преобразования более простого типа данных в более
сложный тип. Обычно также простой тип объявляется в настоящем стандарте раньше более сложного. Объявле ние
всех повышающих приведений в простом типе потребовало бы ссылок вперед по тексту, что неудобно чита телю.
Поэтому альтернативный синтаксис разрешает определять повышающее приведение в объявлении более сложного
типа. Оно обозначается с помощью указания имени типа, к которому применяется повышающее приве дение. в
списке аргументов после имени результирующего типа:
type Interval alias IVL |
promotion IVL (QTYx>;
If
B. 1.9.4 Литеральная форма
Литерал представляет собой представление значения данных в виде строки символов. Литералы определе
ны для многих типов данных. Литерал представляет собой преобразование типа из строкового типа данных ST и
обратно с помощью специального определенного синтаксиса.
Не каждое преобразование в тип данных ST и обратно является литеральным преобразованием. Литерал
типа данных должен обеспечивать представление всего множества значений этого типа данных, в то время как
другое преобразования в тип данных ST и обратно могут отображать только меньшее подмножество значений
пре образуемого типа данных.
294