Per evitare il gonfiore dello spazio dei nomi, utilizzo i pacchetti. Ad esempio, supponiamo Foo
essere una funzione in un pacchetto chiamato FooPackage
Posso importare uno spazio dei nomi globalmente senza chiamare esplicitamente l'importazione in ogni singola funzione?
function Foo()
disp('Foo');
end
voglio usare questa funzione in un altro funzione chiamata Bar
.
function Bar()
InFunc1();
InFunc2();
InFunc3();
end
questa funzione chiama sotto-funzioni. Il modo ingenuo è dire esplicitamente il nome del pacchetto in ogni chiamata
function InFunc1()
FooPackage.Foo();
end
function InFunc2()
FooPackage.Foo();
end
function InFunc3()
FooPackage.Foo();
end
In alternativa posso utilizzare un'importazione in ogni funzione:
function InFunc1()
import FooPackage.*
Foo();
end
function InFunc2()
import FooPackage.*
Foo();
end
function InFunc3()
import FooPackage.*
Foo();
end
Entrambi i modi sono estenuanti. La risposta in here dice che questi sono gli unici modi. Qualcuno ha un suggerimento migliore?
Forse puoi risolvere il tuo problema usando una directory 'private'? – Oli