matlab - 我可以在不在每个函数中显式调用 import 的情况下全局导入命名空间吗?

标签 matlab namespaces

为了避免命名空间膨胀,我使用包。例如,让 Foo 成为名为 FooPackage

的包中的函数
function Foo()
   disp('Foo');
end

我想在另一个名为 Bar 的函数中使用这个函数。

function Bar()
    InFunc1();
    InFunc2();
    InFunc3();
end

这个函数调用子函数。 Naive 的方式是在每次调用时明确说出包名

 function InFunc1()
    FooPackage.Foo();
end

function InFunc2()
   FooPackage.Foo();
end

function InFunc3()
   FooPackage.Foo();
end

或者,我可以在每个函数中使用导入:

 function InFunc1()
    import FooPackage.*
    Foo();
end

function InFunc2()
    import FooPackage.*
    Foo();
end

function InFunc3()
    import FooPackage.*
    Foo();
end

这两种方式都让人筋疲力尽。 here中的答案说这是唯一的方法。 谁有更好的建议?

最佳答案

也许您可以使用private 目录。 private 目录下的函数只能被其父目录下的函数看到,并且只能通过名字调用。

这不是一个完全令人满意的解决方案,但可以提供帮助。

关于matlab - 我可以在不在每个函数中显式调用 import 的情况下全局导入命名空间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883499/

相关文章:

java - Matlab 2017a 是否改变了导入外部 java 类的方式?

matlab - 如何在固定 float 的matlab中转换变量

c++ - 将#include 包装在命名空间 block 中是个好主意吗?

c++ - 尝试通过 using-declaration 定义命名空间成员

actionscript-3 - 如何显式引用全局包?

Matlab多重索引

matlab - 数值稳定的实现

matlab - 减小矩阵的大小会重新分配内存吗?

c# - 无法找到正确的命名空间但已添加引用?

c++ - 使用指令与使用声明