如何获取 UNION 类型的元素?
How to get the elements of a UNION type?
我有以下声明:
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"
,但出现以下错误:
Error: operator and operand don't agree [type mismatch]
operator domain: {3:'Y;'Z}
operand: REQUEST_PUBSUB
in expression: (fn {3=3,...} => 3) pubsub_req
Elaborate failure
如何操作UNION类型的元素?
我没有像我尝试的那样做,而是将 REQUEST_PUB
类型更改为:
colset REQUEST_PUB = product AUTHENTICATION * STRING * INT;
然后,我传递了一个列表,例如 ((int_var, string_var), string_var, int_var)
,而不是 REQUEST_PUBSUB
变量。这样我就可以在一些列表变量中执行操作。
我有以下声明:
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"
,但出现以下错误:
Error: operator and operand don't agree [type mismatch]
operator domain: {3:'Y;'Z}
operand: REQUEST_PUBSUB
in expression: (fn {3=3,...} => 3) pubsub_req
Elaborate failure
如何操作UNION类型的元素?
我没有像我尝试的那样做,而是将 REQUEST_PUB
类型更改为:
colset REQUEST_PUB = product AUTHENTICATION * STRING * INT;
然后,我传递了一个列表,例如 ((int_var, string_var), string_var, int_var)
,而不是 REQUEST_PUBSUB
变量。这样我就可以在一些列表变量中执行操作。