0
我希望能够从名为group
的集中声明一个或两个相同类型的变量。我知道one
和lone
可以用来分别声明一个或零个/一个变量。我到目前为止的尝试是:Alloy - 声明1或2个变量
one x : group, lone y : from | {...}
但是,这似乎并不奏效。我的目标是有一个或两个变量,然后我可以在下面的表达式中使用。
我希望能够从名为group
的集中声明一个或两个相同类型的变量。我知道one
和lone
可以用来分别声明一个或零个/一个变量。我到目前为止的尝试是:Alloy - 声明1或2个变量
one x : group, lone y : from | {...}
但是,这似乎并不奏效。我的目标是有一个或两个变量,然后我可以在下面的表达式中使用。
这里可能会有困惑。 如果你写one x:group| expr
这意味着组中应该只有一个x,所以表达式expr
成立。知道了这一点,如果你想表达这种约束,你可以写下这样的文字: 例如,假设有一个名为size
描述到Int
从group
的关系 一个字段,表达的至少一个和最多两个基团具有的大小为5可以如下
one x,y : group | (x + y).size=5
在这个例子中,x+y
将完成根据是否x=y
产生一个或两个组元素。
你是什么意思五个大小? – LEJ
这是一个表达的例子,我发明了它。给我更多的上下文,我会适应这个例子你的需要 –
我现在明白,我已经有我的表达,但非常感谢你。 – LEJ