Alloy - 声明 1 或 2 个变量
Alloy - Declare 1 or 2 variables
我希望能够从名为 group
的集合中声明一个或两个相同类型的变量。我知道 one
和 lone
可用于分别声明一个或 zero/one 变量。到目前为止,我的尝试是:
one x : group, lone y : from | {...}
但是,这似乎不起作用。我的目标是拥有一个或两个变量,然后我可以在以下表达式中使用这些变量。
这里可能会有混淆。
如果你写 one x:group| expr
这意味着组中应该只有一个 x 以便表达式 expr
成立。
知道了这一点,如果你想表达那种约束,你可以这样写:
例如假设有一个名为 size
的字段描述了从 group
到 Int
的关系,
表示至少一个和最多两个组的大小为5可以如下
one x,y : group | (x + y).size=5
在此示例中,x+y
将根据是否 x=y
生成一个或两个组元素。
我希望能够从名为 group
的集合中声明一个或两个相同类型的变量。我知道 one
和 lone
可用于分别声明一个或 zero/one 变量。到目前为止,我的尝试是:
one x : group, lone y : from | {...}
但是,这似乎不起作用。我的目标是拥有一个或两个变量,然后我可以在以下表达式中使用这些变量。
这里可能会有混淆。
如果你写 one x:group| expr
这意味着组中应该只有一个 x 以便表达式 expr
成立。
知道了这一点,如果你想表达那种约束,你可以这样写:
例如假设有一个名为 size
的字段描述了从 group
到 Int
的关系,
表示至少一个和最多两个组的大小为5可以如下
one x,y : group | (x + y).size=5
在此示例中,x+y
将根据是否 x=y
生成一个或两个组元素。