Как получить элементы типа UNION?
У меня есть следующие декларации:
colset AUTHENTICATION = product INT * STRING;
colset REQUEST_PUB = product AUTHENTICATION * STRING * REAL;
colset REQUEST_SUB = product AUTHENTICATION * STRING * INT;
colset REQUEST_PUBSUB = union pub_req:REQUEST_PUB + sub_req:REQUEST_SUB;
var pubsub_req : REQUEST_PUBSUB
У меня есть место типа REQUEST_PUBSUB
которые могут получать токены обоих REQUEST_PUB
а также REQUEST_SUB
типы. Это место отправляет переменную pubsub_req
к переходу. Я хочу работать с pubsub_req
ценности. Например, проверка, является ли строковый параметр запроса некоторым значением. Я пытаюсь сделать #3 pubsub_req = "some value"
, но я получаю следующую ошибку:
Ошибка: оператор и операнд не согласны [несоответствие типов]
домен оператора: {3:'Y;'Z}
операнд: REQUEST_PUBSUB
в выражении: (fn {3=3,...} => 3) pubsub_req
Разработанный провал
Как работать с элементами типа UNION?
0 ответов
Вместо того, чтобы делать то, что я пытался, я изменил REQUEST_PUB
введите в:
colset REQUEST_PUB = product AUTHENTICATION * STRING * INT;
Затем я передал список, например ((int_var, string_var), string_var, int_var)
, вместо REQUEST_PUBSUB
переменная. Таким образом я мог выполнять операции с некоторыми переменными списка.