2
我了解到,在Ada规范文件(* .ads)中存在公共部分和私有部分,只有公共部分应该被视为编译单元(通常是包)的用户。Ada:公开部分和私人部分规格是分开的吗?
实际上通常不同的文件中将规范的公共部分和私有部分分开?因此,最终,这样的包的用户知道规范层上的包的内部但不能使用它。我在这里吗?
感谢和欢呼声, 沃尔夫冈
我了解到,在Ada规范文件(* .ads)中存在公共部分和私有部分,只有公共部分应该被视为编译单元(通常是包)的用户。Ada:公开部分和私人部分规格是分开的吗?
实际上通常不同的文件中将规范的公共部分和私有部分分开?因此,最终,这样的包的用户知道规范层上的包的内部但不能使用它。我在这里吗?
感谢和欢呼声, 沃尔夫冈
不,阿达不允许你分开包装规范的公共和私人部分。
Ada的首席设计师Jean Ichbiah在语言上做了一些工作,实际上它将公共,私有(数据结构)和包的实现部分分开,但这并未成为Ada的一部分。
另外:
...所以你不能总是完全忽略包规范的私有部分。
一个实际的例子:
当我写单元测试,我喜欢把测试套件在我测试包的子包。这样我的测试用例不仅限于检查包中声明的类型的公共视图。