- sulkingCamelCase内部使用的变量,CamelCase的onput和输出。
- 所有的名字都是单数,后面跟着“List”,“Vec”等,如果重要的话,它们是数组。
- 逻辑标志以“is…”或“do…”开头。
- “n…”是一个元素或对象的数量,“i…”是一个循环计数器。
如何命名单个输出函数?
10次浏览(过去30天)
显示旧的注释
接受的答案
1月
2021年2月6日
我使用CamelCase函数来减少与Matlab工具箱函数碰撞的危险。对于经常使用的函数,紧凑的名称很好。开头的“Calculate…”会引入过多的冗余,因为大多数函数都计算一些东西。比较:
CalculateMean(CalculateSin(CalculateLinSpace(0,2 *CalculatePI, 1000)))
与
Mean (sin(linspace(0,2 *pi, 1000)))
如何调用函数的输出并不重要,重要的是何时调用函数。这样函数的代码就不可见,命名也不影响可用性。
有时,我使用过程的名称,有时使用输出的名称,有时添加初始的“Set”,“Get”,“Write”,“Read”等。不同方法的例子:
MD5 = GetMD5(文件)
MD5 = MD5Hash(文件)
Hash = MD5(文件)
...
选择函数和变量名称的一些固定样式是有用的。但只要你保持概述,名字不要太长或太神秘,这仍然是一个品味的问题。那么,在命名约定上花费时间和精力就是浪费优化。
另一方面,我对所有变量的名称都使用约定:
这减少了在代码中任何地方混淆“nFile”和“nFiles”的机会。与此相反,我认为混淆函数名的问题较少。
更多答案(2)
史蒂文的主
2021年2月6日
函数result = calculateResult(输入)
D .计算结果
结束
我对此有一些反馈。
其次,我不喜欢这个函数名,因为它太乏味了。它没有提供函数做什么的提示。“计算”和“结果”在这个上下文中都是普通的填充词。在我看来,阅读函数的名称应该让我对函数的实际功能有一个合理的了解,理想情况下,我不需要阅读它的帮助文本或文档,除非我需要关于函数的一些具体细微差别的细节。[是的,我知道并非MathWorks产品中的所有函数都满足这一点。下载188bet金宝搏我在描述中确实用了"理想"这个词。另外,在过去的几十年里,我们学到了很多关于软件设计的知识。
把它想象成汉堡王、肯德基或必胜客。即使你以前从未听说过这些企业,你可能只从名字就能猜出他们是什么(餐馆)和他们卖什么(分别是汉堡、炸鸡和披萨)。作为一个MATLAB示例,考虑
islocalmax
函数。在没有阅读该函数的帮助文本或文档的情况下,您会猜它是做什么的?
第三,函数中输出变量的名称并不重要。理想情况下是函数的用户
不应该在意
香肠是怎么做的,只是他们点的香肠就是他们收到的香肠。(
卫生检查员
应该关心,但在这个比喻中,卫生检查员是由
白盒测试
你的功能。即使是卫生检查员可能也不应该关心你给厨房里的设备取什么绰号,除非你把绞肉机叫做“沙门氏菌工厂”。没有什么能与之相提并论
函数中的变量
的名称赋值的第一个输出
在用户代码中将输出分配给它的变量
.(使用calculateResult函数)
y = calculateResult(1:10)
计算结果(1:10)
qwerty{1} = calculateResult(1:10)
假设调用者在上面的一个调用了sin
z = sin(calculateResult(1:10))% calculateResult的输出存储在一个未命名的临时对象中
4评论
沃尔特·罗伯森
2021年2月7日
我曾见过一些编程语言,其中返回值的方法是赋值给与函数同名的变量。但是,该名称不能在程序中作为变量使用,也不能被索引。举个例子,它的等价是有效的
双Mean (double x) {Mean = sum(x)./numel(x);}
然而,这样的语言也有挑战。例如,
双Mean (double x) {Mean = 0;Mean = Mean + Mean (1) + Mean (x./2);}
平均值(1)是指数吗?是函数求值吗?
双Mean (double x) {memzero(&mean, sizeof(Mean));}
memzero是传递函数的输出变量的地址,还是传递函数的指针?