将命名空间成员导入函数
在函数内部引用命名空间成员时,可以通过将命名空间成员导入函数中来简化对它们的访问。导入代码后,就不需要使用命名空间名称。
注意
此处使用的命名空间名称和成员仅用作示例。它们不是 MATLAB® 安装的一部分。要体验该功能,请在您自己的路径中定义这些文件夹和代码。
导入类、命名空间函数和静态方法
例如,使用 import
命令从命名空间 mynamesp
导入 MyClass
。然后,您可以在函数内部引用 MyClass
,而无需命名空间名称。
function exampleFunction import mynamesp.MyClass obj = MyClass(arg,...); % call MyClass constructor obj.Prop = MyClass.staticMethod(arg,...); % call MyClass static method end
相同的过程也适用于命名空间函数和静态方法,如以下示例所示。将代码导入函数使您能够在没有命名空间的情况下调用代码。
function myFuncA import mynamesp.myFunction myFunction(arg,...); % call imported namespace function end
function myFuncB import mynamesp.MyClass.myStaticMethod myStaticMethod(arg,...); % call static method end
您可以使用语法 mynamesp.*
导入命名空间中的所有代码。但是,由于这样做可能发生名称冲突,您应避免这种做法。有关详细信息,请参阅导入同名的命名空间成员。
导入同名的命名空间成员
导入命名空间成员时要小心,避免名称冲突。例如,此文件夹层次结构包含具有相同名称 timedata
的命名空间函数和类方法。
+mynamesp/timedata.m % namespace function +mynamesp/@MyClass/MyClass.m % class definition file +mynamesp/@MyClass/timedata.m % class method
导入命名空间并尝试对 MyClass
的实例调用 timedata
。
import mynamesp.*
myobj = MyClass;
timedata(myobj)
使用函数语法而不是圆点语法调用 timedata
会调用命名空间函数,因为 MATLAB 会先找到导入的函数。
清空导入列表
您无法从函数工作区中清除导入列表。但是,您可以使用 clear import
清空基础工作区。