Ada:public 和规范的私有部分分开了?
Ada: public and private part of specification separated?
我了解到Ada规范文件(*.ads)中有一个public部分和一个私有部分,只有public部分应该被编译单元的用户考虑(通常是一个包裹)。
在不同文件中将规范的 public 和私有部分分开实际上并不常见?
所以,最后,这样一个包的用户知道规范层包的内部结构,但不能使用它。我在这儿吗?
感谢和欢呼,
沃尔夫冈
不,Ada 不允许您将包规范的 public 和私有部分分开。
Ada 最初的首席设计师 Jean Ichbiah 在语言上做了一些工作,实际上将 public、私有(数据结构)和实现部分分开了一个包,但这并没有成为艾达的一部分。
还有:
- 子包的私有部分和主体可以看到其父包的私有部分。
- 私有子包的规范可以看到其父包的私有部分。
...所以你不能总是完全忽略包规范的私有部分。
实际例子:
当我编写单元测试时,我喜欢将测试套件放在我正在测试的包的子包中。这样我的测试用例就不仅限于检查包中声明的类型的 public 视图。
我了解到Ada规范文件(*.ads)中有一个public部分和一个私有部分,只有public部分应该被编译单元的用户考虑(通常是一个包裹)。
在不同文件中将规范的 public 和私有部分分开实际上并不常见?
所以,最后,这样一个包的用户知道规范层包的内部结构,但不能使用它。我在这儿吗?
感谢和欢呼, 沃尔夫冈
不,Ada 不允许您将包规范的 public 和私有部分分开。
Ada 最初的首席设计师 Jean Ichbiah 在语言上做了一些工作,实际上将 public、私有(数据结构)和实现部分分开了一个包,但这并没有成为艾达的一部分。
还有:
- 子包的私有部分和主体可以看到其父包的私有部分。
- 私有子包的规范可以看到其父包的私有部分。
...所以你不能总是完全忽略包规范的私有部分。
实际例子:
当我编写单元测试时,我喜欢将测试套件放在我正在测试的包的子包中。这样我的测试用例就不仅限于检查包中声明的类型的 public 视图。