[英]The best practice to use boolean in Alloy model
我正在构建一个简单的Alloy来生成简单的Java Pojo对象,并且该pojo的某些字段是布尔值。 我现在使用以下机制来实现此功能
one sig item {
autoPay: String,
Price: Int
}
fact boolean {
all n: item {
item.autoPay = "true" or
item.autoPay = "false"
}
}
这将工作,但每次我引入一个新的布尔字段时,我必须修改布尔事实,以确保该值为“true”或“false”。 有没有最好的做法呢? 就像我们Alloy为Integers做的那样?
引入Bool sig会更好,然后将它用于所有布尔字段,例如,
abstract sig Bool{}
one sig True extends Bool
one sig False extends Bool
one sig item {
autoPay: Bool,
Price: Int
}
在这种情况下不需要其他事实。
如果您喜欢这种方法,那么有一个内置的“util / boolean”库,它完全像我上面那样定义Bool
, True
和False
sigs,并且还提供了一些辅助函数(比如isTrue
, And
, Or
等)。所以你可以简单地说
open util/boolean
one sig item {
autoPay: Bool,
Price: Int
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.