主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

MATLABコードアナライザーの警告

構文の警告とプロパティ名

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。结束

上記コーディングは,コードアナライザーからの警告をトリガーしません。

関連するトピック