このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
関数への名前空間メンバーのインポート
関数の内部で名前空間メンバーを参照するときは、名前空間メンバーを関数にインポートすることで、それらへのアクセスを簡略化できます。いったんコードをインポートすると、名前空間の名前を使用する必要はなくなります。
メモ
ここで使用している名前空間の名前とメンバーは、あくまで例として示したものです。これらは 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
を使用してベース ワークスペースを消去できます。