为了避免命名空间膨胀,我使用包。例如,让Foo
成为名为FooPackage
function Foo()
disp('Foo');
end
我想在另一个名为Bar
的函数中使用此函数。
function Bar()
InFunc1();
InFunc2();
InFunc3();
end
这个函数调用子函数。朴素的方式是在每次调用中明确说明包名称
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中的答案说这是唯一的方法。 有人有更好的建议吗?
答案 0 :(得分:4)
也许您可以使用private
目录。 private
目录中的函数只能通过其父目录中的函数来查看,并且只能通过它们的名称来调用它们。
这不是一个完全令人满意的解决方案,但这可以提供帮助。