变量名应使用小驼峰命名法,即第一个单词的首字母小写,后续单词首字母大写。
例如:velocity, angularAcceleration.
作用域大的变量应该用有意义的名称。
作用域较小的变量可以用短名称。
例如:x, y, z
前缀 n 应用于表示对象数量的变量。
例如:nFiles, nCars, nLines
复数形式的约定
例如:point, pointArray
代表单个实体编号的变量可以以编号No为后缀。
例如:tableNo, employeeNo
迭代器变量应以 i、j、k 等命名或前缀。
iFiles, jColumns
对于嵌套循环,迭代器应按字母顺序排列,并提供有用的名称。
for iFiles = 1:nFiles
for jPositions = 1:nPositions
...
end
end
避免使用否定的布尔变量名
例如使用 isFound
而非 isNotFound
首字母缩略词即使通常为大写,也应混合或小写。
html, isUsaSpecific
避免使用关键字或特殊值名称。
命名常量应全部大写,并使用下划线分隔单词。
MAX_ITERATIONS, COLOR_RED
常量可以使用通用类型名称作为前缀。
COLOR_RED, COLOR_GREEN, COLOR_BLUE
结构体名称应使用大驼峰命名法,即每个单词的首字母都大写。
例如:Car, DumpTruck
请勿在字段名称中包含结构体名称。
即使用 Segment.length
而不是 Segment.segmentLength
函数的名称应记录其用法,名称应该用小写或混合大小写。
width(), computeTotalWidth()
函数应该使用有意义的名称,例如使用computeTotalWidth
而非compwid
具有单一输出的函数可以根据输出来命名
例如:shearStress(), standardError()
没有输出参数或仅返回句柄的函数应根据其功能来命名。
例如:plotfft()
为访问对象或属性保留前缀get/set。
例如:getobj(), setappdata()
为计算某些内容的方法保留前缀compute。
例如:computeSumOfResiduals(), computeSpread()
为查找内容的方法保留前缀find。
例如:findOldestRecord()
保留前缀initialize用于实例化对象或概念。
例如:initializeProblemState()
为布尔函数保留前缀is。
例如:isCrazy, isNuts, isOffHisRocker
当为彼此密切相关的概念或操作创建有意义的名称时,最好使用强相关的名称。当其中一个操作与另一个操作相反或互补时尤其如此。
例如:get/set, add/remove, create/destroy, start/stop, insert/delete, increment/decrement, old/new, begin/end, first/last, up/down, min/max, next/previous, open/close, show/hide,suspend/resume
等
需要注意函数名同名问题,可使用which -all 或exist 来检查是否存在函数名遮蔽。
除非内存限制要求,否则不应重复使用变量。
同一类型的相关变量可以在共同语句中声明。不相关的变量不应在同一语句中声明。
persistent x, y, z
在文件开头附近的注释中记录重要变量。用行末注释记录常量。
THRESHOLD = 10; % Max noise level
result = zeros(nDays,1);
for iDay = 1:nDays
result(iDay) = foo(iDay);
end
尽量减少在循环中使用break 和 continue 。
嵌套循环中的结束行可以用注释来阐明代码块。
for index=1:2
if index==1
dosomething(index); ...
end % End if
end % End for
isValid = (v >= lowerLimit) & (v <= upperLimit);
isNew = ismember(v, valueArray);
避免使用条件表达式 if 0
。
if-else
序列应包含 else
条件。
通常情况应放在if
部分,例外情况应放在if-else
语句的else
部分。
switch
语句应包含 otherwise
条件。
如果变量是字符串,请使用switch
序列。
尽可能使用switch
语句代替多重if-elseif-else
语句。
内容应保留在前 80 列内。
应在逗号、空格和运算符之后分割行。
续行与上一行表达式的开头对齐
totalSum = a + b + c ...
d + e;
基本缩进应为 4 个空格。
一般来说,一行代码应该只包含一个可执行语句。
短的单语句 if、for 或 while 语句可以写在一行上。
if (condition), statement; end
注释应该与代码一致,但不能重复代码。
注释应与引用的语句具有相同的缩进。
传统的函数头注释应支持 help 和 lookfor,在matlab中使用help + 函数名会打印该函数的第一个连续的注释块。
function runEverything
% runEverything runs all mfiles in its folder
将任何版权行和更改历史记录放在函数标题之后,中间空一行。
所有注释均应使用英文。
使用文本标记编写页眉注释,提供用户文档。包含与帮助页面相对应的部分:语法、描述、示例和另见。考虑先编写文档,以便更好地定义输入、输出和功能。
考虑使用 SVN 或 GIT 等源代码控制工具。如果不使用源控制工具,可在函数标题后或脚本顶部附近添加更改历史注释,以记录更改。
联系客服