我想检查DAML代码中的条件,但一个值是一个聚会,另一个值是文本,因此得到错误:
•由于类型之间的功能依赖关系而导致类型'Party'与'Text'不匹配:约束'DA.Internal.Record.HasField“所有者” AccountInfo Text'是由于使用'DA.Internal.Record.getField'实例而引起的“ DA.Internal.Record.HasField“所有者” AccountInfo方”位于
if( login.party == "friend" || logout.party == "friend)
userCId <- create Users with userType= "Friendly User",..
return (Right userCId)
如Shayne所述,您可以使用show
(或partyToText
)将其转换为Text
。但是,我认为这不是解决此问题的正确方法。各方应被视为抽象标识符,而DAML沙箱允许您使用任意字符串,而对于其他分类帐则不是这样。
我建议您不要对特定方文字进行硬编码检查,而是将模板扩展到一个附加字段friend : Party
,然后与之进行比较。然后,当您创建模板时,可以将其设置friend
为"friend"
在沙箱上,也可以将其设置为其他内容。
所以最终您要更换
template C with
…
choice C : ()
controller …
do if login.party == "friend"
…
与以下
template C with
…
friend : Party
choice C : ()
controller …
do if login.party == friend
…
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句