如何检查元素是否存在于 DAML 的记录列表中?
How do I check if an element is present in list of records in DAML?
假设Event 是一个包含eventName 和eventParameter 等字段的记录。如果某些 eventName 说“EV1”存在于记录列表中,我想断言该条件。对于本机数据类型列表(比如说缔约方),我可以简单地检查文档中给出的 (elem in following)
。谁能帮我记录数据类型的语法是什么?
elem
是一个更通用的函数 any : (a -> Bool) -> [a] -> Bool
的实例,它接受一个谓词和一个元素列表,并且 returns 如果谓词对其中至少一个元素成立则为真列表。 elem x xs
等同于 any (\y -> x == y) xs
.
使用any
你可以表达你的例子如下:
data Event = Event with
eventName : Text
test = scenario do
assert $
any (\r -> r.eventName == "EV1")
[Event with eventName = "EV1"]
assert $ not $
any (\r -> r.eventName == "EV1")
[Event with eventName = "EV2"]
假设Event 是一个包含eventName 和eventParameter 等字段的记录。如果某些 eventName 说“EV1”存在于记录列表中,我想断言该条件。对于本机数据类型列表(比如说缔约方),我可以简单地检查文档中给出的 (elem in following)
。谁能帮我记录数据类型的语法是什么?
elem
是一个更通用的函数 any : (a -> Bool) -> [a] -> Bool
的实例,它接受一个谓词和一个元素列表,并且 returns 如果谓词对其中至少一个元素成立则为真列表。 elem x xs
等同于 any (\y -> x == y) xs
.
使用any
你可以表达你的例子如下:
data Event = Event with
eventName : Text
test = scenario do
assert $
any (\r -> r.eventName == "EV1")
[Event with eventName = "EV1"]
assert $ not $
any (\r -> r.eventName == "EV1")
[Event with eventName = "EV2"]