Импортируйте классы в функцию, чтобы упростить доступ к членам класса. Например, предположим, что существует пакет, содержащий несколько классов, и в функции будет использоваться только один из этих классов или статический метод. Используйте import для упрощения кода. После импорта класса нет необходимости ссылаться на имя пакета:
function myFunc import pkg.MyClass obj = MyClass(arg,...); % call MyClass constructor obj.Prop = MyClass.staticMethod(arg,...); % call MyClass static method end
Импорт всех классов в пакете с использованием синтаксиса pkg.*:
function myFunc import pkg.* obj1 = MyClass1(arg,...); % call pkg.MyClass1 constructor obj2 = MyClass2(arg,...); % call pkg.MyClass2 constructor a = pkgFunction(); % call package function named pkgFunction end
Использовать import для импорта статического метода, чтобы можно было вызвать этот метод без использования имени класса. Звонить import с полным именем класса, включая все пакеты, и статическим именем метода.
function myFunc import pkg.MyClass.MyStaticMethod MyStaticMethod(arg,...); % call static method end
Использовать import импорт функций пакета для вызова этих функций без использования имени пакета. Звонить import с именем пакета и функции.
function myFunc import pkg.pkgFunction pkgFunction(arg,...); % call imported package function end
Избегайте импорта всего пакета с помощью * синтаксис подстановочных знаков. При этом в локальную область импортируется неопределенный набор имен. Например, предположим, что имеется следующая организация папок:
+pkg/timedata.m % package function +pkg/@MyClass/MyClass.m % class definition file +pkg/@MyClass/timedata.m % class method
Импорт пакета и вызов timedata на экземпляре MyClass:
import pkg.* myobj = pkg.MyClass; timedata(myobj)
Вызов timedata находит функцию пакета, а не метод класса, поскольку MATLAB ® применяет import и находит pkg.timedata во-первых. Не используйте пакет в случаях конфликтов имен и планируйте импортировать пакет.
Невозможно очистить список импорта из рабочей области функции. Чтобы очистить только базовую рабочую область, используйте:
clear import