关于选项类型,Minizinc的规范(第 6.6.3 节)说:
概述。使用 opt 类型构造函数定义的选项类型,定义可能存在或不存在的类型。它们类似于 Haskell 的 Maybe 类型,为类型隐式添加新值
<>
。[...]
初始化。opt 类型变量不需要在实例时初始化。未初始化的 opt 类型变量会自动初始化为
<>
.
我想用两种类型解析和处理以下约束opt
:
predicate alternative(var opt int: s0, var int: d0,
array[int] of var opt int: s,
array[int] of var int: d);
但是,我不确定我应该期望什么作为参数的值s0
以及s
在解析此约束时。
我可以简单地忽略opt
修饰符的存在并假设约束签名等于以下一个吗?
predicate alternative(var int: s0, var int: d0,
array[int] of var int: s,
array[int] of var int: d);
如果不是,我应该如何处理?