String 合金:用来系绳子

String 合金:用来系绳子,string,passwords,alloy,String,Passwords,Alloy,我怎样计算合金线的长度 如果我想说密码必须至少包含8个字符,那么如何表示该字符串的长度 我的密码签名是: 合金中的sig Password{Password:one String}String与任何其他sig非常相似。唯一的区别是,您可以将字符串文字分配给string类型的字段,例如 some p: Password | p.password = "secret" Alloy中不支持任何字符串函数。解决约束,如 some p: Password | len[p.password] > 5

我怎样计算合金线的长度

如果我想说密码必须至少包含8个字符,那么如何表示该字符串的长度

我的密码签名是:


合金中的sig Password{Password:one String}

String
与任何其他sig非常相似。唯一的区别是,您可以将字符串文字分配给
string
类型的字段,例如

some p: Password | p.password = "secret"
Alloy中不支持任何字符串函数。解决约束,如

some p: Password | len[p.password] > 5
需要专门的字符串解算器,而Alloy不是

如果您只关心密码长度,您可以执行以下操作

sig Char {}
sig Password { 
   password: seq Char 
} { 
   #password > 5
}

如果您需要能够解决更复杂的字符串约束(包括正则表达式),您应该研究专门的字符串解算器,例如。

Alloy中的字符串与任何其他sig非常相似。唯一的区别是,您可以将字符串文字分配给
string
类型的字段,例如

some p: Password | p.password = "secret"
Alloy中不支持任何字符串函数。解决约束,如

some p: Password | len[p.password] > 5
需要专门的字符串解算器,而Alloy不是

如果您只关心密码长度,您可以执行以下操作

sig Char {}
sig Password { 
   password: seq Char 
} { 
   #password > 5
}
如果您需要能够解决更复杂的字符串约束(包括正则表达式),您应该研究专门的字符串解算器,例如