文档

MATLAB代码分析警告

语法警告和属性名称

MATLAB®代码分析器可以帮助你优化你的代码,避免语法错误当你编写代码。是有用的了解一些代码分析器的规则适用于类定义代码的分析。这种理解可以帮助你避免MATLAB代码允许的情况下这是不可取的。

变量/属性名冲突警告

代码分析器警告的方法中使用变量名匹配属性的名称。例如,假设一个类定义了一个属性EmployeeName在这个类中,有一个方法,使用EmployeeName作为一个变量:

属性EmployeeName结束方法函数someMethod (obj, n) EmployeeName = n;结束结束

虽然前面的函数是合法的MATLAB代码,它导致代码分析器警告,有两个原因:

  • 的价值EmployeeName从来没有使用

  • EmployeeName是属性的名称作为变量

如果函数someMethod包含以下声明:

obj。EmployeeName = n;

代码分析器生成没有警告。

如果你改变someMethod:

函数EN = someMethod (obj) EN = EmployeeName;结束

代码分析器只返回一个警告,暗示你可能会想要参考EmployeeName财产。

在这个版本的someMethod是合法的MATLAB代码,这是令人困惑的给一个属性相同的名称作为一个函数。因此,代码分析器提供了一个警告建议你本意的声明:

EN = obj.EmployeeName;

变量/属性名规则的例外

假设您定义一个方法,返回一个值的属性,并使用属性的名称为输出变量的名字。例如:

函数EmployeeName = someMethod (obj) EmployeeName = obj.EmployeeName;结束

代码分析器不警告当变量名相同的属性名当变量:

  • 一个输入或输出变量

  • 一个全球或持久性变量

在这些特殊的情况下,代码分析器不提醒你,你正在使用一个变量名,也是一个属性名。因此,一个编码错误如下:

函数EmployeeName = someMethod (obj) EmployeeName = EmployeeName;%忘了包括obj。结束

不触发一个警告的代码分析器。

相关的话题