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