このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
MATLAB®のコードアナライザーは,コードを作成する場合に構文エラーを防ぎ,コードを最適化するのに便利です。効率よく作業するために,コードアナライザーによってクラス定義コードの分析に使用されるルールを理解しておくようにします。このルールを理解することで,MATLABで不適切なコードが許可されるのを防ぐことができます。
メソッド内でプロパティと同じ名前の変数を使用すると,コードアナライザーによる警告が発生します。たとえば,クラスがEmployeeName
というプロパティを定義するとします。このクラス内で,EmployeeName
を変数として使用するメソッドがあるものとします。
属性EmployeeName结束方法函数someemethod (obj,n) EmployeeName = n;结束结束
上記の関数は,正しいMATLABコードですが,次の2つの理由のために警告が発生します。
EmployeeName
の値は使用されない
EmployeeName
は,変数として使用されるプロパティの名前である
代わりに,関数someMethod
が,以下のステートメントを含む場合,
obj。EmployeeName = n;
コードアナライザーによる警告は発生しません。
someMethod
を以下のように変更すると,
函数EN = someemethod (obj) EN = EmployeeName;结束
実際はEmployeeName
プロパティを参照したいのではないかという旨の警告が1つだけ返されます。
このバージョンのsomeMethod
は正しいMATLABコードですが,関数と同じ名前をプロパティに使用すると混乱します。このため,実際には次のステートメントを意図しているのではないかという旨の警告が表示されます。
EN = obj.EmployeeName;
プロパティ値を返し,出力変数名に対してプロパティ名を使用する,メソッドを定義するものとします。たとえば,次のようになります。
函数EmployeeName = someemethod (obj)结束
変数が以下のものである場合に,変数名がプロパティ名と同じであっても,コードアナライザーは警告しません。
入力変数または出力変数
グローバル変数または永続変数
これらの特別のケースでは,プロパティ名でもある変数名を使用していることを,コードアナライザーは警告しません。したがって,以下のようなコーディングの誤りがあってもM-Lintは警告を生成しません。
函数EmployeeName = someMethod(obj) EmployeeName = EmployeeName;%忘记包含obj。结束
上記コーディングは,コードアナライザーからの警告をトリガーしません。