Octave: class 和函数文件名

Octave: class and function file names

当我在 Octave 中创建 class 或函数文件时。是否可以为文件指定一个不同于 classes/functions 名称的名称? (Class test 在文件 test.m 中,但我更愿意将文件命名为 test.class.m)

# test.m
classdef test
  % ...
endclassdef

没有。 Octave 的设计方式,classes 和函数必须在文件名与 class 或函数名完全匹配的文件中定义。这样一来,给定一个函数或 class 名称,Octave 就知道在磁盘上的哪个位置找到它的定义,因此它可以在其他源代码需要时延迟加载它们的定义,而不必加载整个前面的源代码树。

例外是"command-line"函数,您可以在脚本中定义全局函数,它们的定义在脚本执行时出现。但是,这不是为大型项目组织代码的好方法,因为您需要在需要这些函数定义之前安排在适当的时间执行所有脚本。

如果您想将 classes 与函数区分开来,您可以选择将它们放在名为 @<class> 的子目录中,例如 @test/test.m.