为了避免命名空间膨胀,我使用包。例如,让 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/