Чтобы избежать вздутия пространства имен, я использую пакеты.Например, пусть Foo
будет функцией в пакете с именем FooPackage
function Foo()
disp('Foo');
end
Я хочу использовать эту функцию в другой функции с именем Bar
.
function Bar()
InFunc1();
InFunc2();
InFunc3();
end
thisфункция вызывает подфункции.Наивный способ заключается в явном произнесении имени пакета в каждом вызове
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
Оба способа исчерпывают.Ответ в здесь говорит, что это единственный способ.У кого-нибудь есть лучшее предложение?