|
|
1
6
对。 代码契约意味着要保持一个严格的编程接口,只有开发人员才能判断正确与否;用户不应该真的把事情搞砸。 验证旨在验证数据;例如,验证数据不为null,或与正则表达式匹配。 |
|
|
2
2
|
|
|
3
0
代码契约用于断言总是正确的东西,如果它们不正确,那么代码中就有一个bug。这意味着它只能应用于由代码控制的条件。所以,不能用它们来表示“用户永远不会提供空字符串”,因为这超出了代码的控制范围。静态验证器将永远无法证明该语句-它如何知道用户将做什么? 你能做的就是做一些语句,比如“给定一个用户输入,这个方法要么返回一个非空字符串,要么抛出一个异常”。 |