我正在 Matlab/Octave 的公共子集中编写一些支持代码,这些代码以一堆函数的形式出现。我们称它为一个包。
我希望能够组织包裹,即
- 将所有相关的函数文件放在一个地方,用户不应该存储他们的代码;
- 有一些内部组织(“子包”);
- 防止命名空间污染;
- 有一些机制让用户代码“导入”包的一部分;
- 我不一定希望我提供的所有功能都对用户客户端可见。
在 Matlab 方面,这个功能几乎是由包目录和“导入”机制提供的。不过,此功能在 Octave 中似乎不可用(从 3.6.1 开始)。
鉴于此,我想知道在 Octave 中组织我的支持代码包还有哪些选择。
将所有内容放在一个目录中并让用户代码执行 ADDPATH 的选项感觉相当不完善,并且没有提供我想要的控制级别——它只解决了上面列表中的第 1 点。