合金 - 声明1或2个变量

时间:2017-04-03 19:54:12

标签: variables expression alloy

我希望能够从名为group的集合中声明一个或两个相同类型的变量。我知道onelone可以分别用于声明一个或零个/一个变量。到目前为止我的尝试是:

    one x : group, lone y : from | {...}

然而,这似乎不起作用。我的目标是有一个或两个变量,然后我可以在下面的表达式中使用。

1 个答案:

答案 0 :(得分:2)

这里可能会有混淆。 如果你写one x:group| expr这意味着组中应该只有一个x,以便表达式expr成立。

知道这一点,如果你想表达那种约束,你可以写下这样的东西: e.g。假设有一个名为size的字段描述了从groupInt的关系, 表示至少一个,最多两个组的大小为5,可按如下方式进行

one x,y : group | (x + y).size=5 

在此示例中,x+y将产生一个或两个组元素,具体取决于x=y是否。{/ p>