目前在 DAML 中,if 和 else 条件期望返回相同的输出。
如何返回不同的类型?
您总是必须从两个分支返回相同的类型。如果你想返回不同的类型,你可以做的是Either A B
从两个分支中使用,并Left a
在一种情况下使用,另一种情况下使用Right b
。因此,对于一个完整的示例,假设您在第一个分支中有一个if
和一个,在第二个分支中有一个,您可以执行以下操作:Int
Text
ifClause : Either Int String
ifClause = if cond then Left 1 else Right "foobar"
但这 if else return 使模板将其存档,而不允许执行其他数据