创建合约时是否需要所有参数?

Are all parameters required when creating a contract?

从模板创建合同时,是否需要所有参数?如果某些字段需要稍后输入怎么办?

 template Exp
   with
    member1 : Party
    member2 : Party
    comment : Text
  where
    signatory : member1

  choice ABC : ()
    with 
      anotherParty : Party
    controller member1
      do create this with member2 = anotherParty
      pure()

如果我想在创建合同时将 member2 留空,我该怎么做?这是一个好的模式还是有更好的方法来解决这个问题?

所有字段都是必填项。 daml 中没有 null 的等价物。如果您希望字段是可选的,请使用 Optional 类型。在你的情况下声明 member2 : Optional PartyOptional 类型可以取值 NoneSome p,其中 p: Party。第一次创建 Exp 的实例时,可以将 member2 设置为 None,然后选择 do create this with member2 = Some anotherParty.