11.10.7 函数优先级¶
鉴于 Octave 定义函数的方式多种多样,在特定作用域内完全有可能(甚至很可能)存在同一函数的多个版本。在特定作用域内,函数的优先级由以下规则决定:
- 子函数(Subfunction)
在当前作用域内具有所需函数名的子函数。
- 私有函数(Private function)
在当前函数所在目录的私有目录中定义的函数。
- 类构造函数(Class constructor)
用于构造用户类的函数,如第 面向对象编程 一章所述。
- 类方法(Class method)
类的重载函数,如第 面向对象编程 一章所述。
- 命令行函数(Command-line Function)
在命令行上定义的函数。
- 自动加载函数(Autoload function)
通过 autoload 标记为自动加载的函数。
- 路径上的函数(Function on the Path)
可以在用户加载路径中找到的函数。该函数可能存在 Oct-file、mex-file 或 m-file 版本,这些版本之间的优先级按此顺序排列。
- 内置函数(Built-in function)
Octave 核心内置的函数,如 numel、size 等。