[英]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.