我正在阅读Java Concurrency in Practice一书,对这些术语有些困惑:
- 前置条件
- 后置条件
- 不变量
有人可以向我解释一下(如果可能的话,举个例子)?
如果你不能理解这些简单的想法,你会在编写 Java 时遇到很多问题,尤其是多线程代码:
它们都是“契约式编程”理念的一部分。它是由一个叫CAR Hoare的人发明的。Bertrand Meyer围绕它构建了一种名为Eiffel的面向对象语言。没有人经常使用它,但他因此在阳光下度过了一天。
埃菲尔不是很受欢迎。在我写这篇文章时,有超过 400 万个关于 SO 的问题,但其中只有 32 个被标记为“埃菲尔”。
更新:2016 年 6 月 29 日有 11,966,392 个关于 SO 的问题。其中只有 92 个被标记为“埃菲尔”。埃菲尔问题的百分比大致保持在 ~0.00077%。
我的立场是正确的-谢谢你,flamingpenguin。我已经更新了我的答案。