“temp”是一个好的变量名吗?

8
有时候我会试着为"分钟"这个变量想一个好的名称,但是当我意识到这只是一个小循环时,我就觉得这不值得努力。是否存在某种情况,可以称呼一个变量为"temp"?
更新:我应该更清楚一些,因为你们都是程序员!我不是在寻找"temp"实际上描述了变量的功能的情况,而是指完全没有任何意义的情况。

4
如果你要使用一个像“temp”这样毫无意义的名称,那么还不如用“tmp”;-) - Steve Jessop
1
如果变量不是临时的,或者它不是温度,则回答“否”。当然,这只是我的个人看法。 - Mike Lentini
8个回答

10
当然,如果你通过值进行交换;
int temp = a;
a = b;
b = temp;

如果你使用变量表示法,比如calc表示计算等,那么应该使用temp表示温度;)


这是我能想到的唯一反例。我本来要发表一个关于使用swapprev而不是temp的答案,但是...在这种情况下我使用temp(这就是我所记得的全部),所以我只是在充当辩护者: p - user166390
4
确实如此。但如果你在支持并行赋值语法的编程语言中这样做(即a, b = b, a),那么你应该被刺在脸上(比喻性地说)。 - user395760
很遗憾,在许多“现代”语言中都没有这个功能,@Jakub Hampl。 - user166390
这确实是一个很好的例子,因为“temp”描述了变量的功能。我正在寻找一个“temp”实际上没有任何意义的情况。 - Tim
总有a^=b; b^=a; a^=b;,这样你就不需要temp了。 - David Heffernan

3
当建模天气时,需要考虑以下因素:
pressure = 3
temp = 21
pressure_tommorow, temp_tommorow = model(pressure, temp, 1.day.from.now)

然而,如果我不幸使用的编程语言不支持这个功能,并且它完全是一次性的(例如临时的),那么为什么不这样做:

WeatherModel temp = MyNotSoAbstractModellingClass.giveMeTheDamnModel(TimeManager.getTommorow());
PressureEstimate tommorowsEstimatedPressure = temp.getPressure();
TemperatureWhyMakeThisPointleslyShortEstimate tommorowsEstimatedTemperature = temp.getTemperature();
// like someone can pretend that it's not painfully evident what's going on

3
为避免混淆,您应在此处使用“温度”。 - user unknown
1
你特别指的是哪个混淆?我猜你不会再因为一个地方写成了 temperature 而另一个地方写成了 temeperature 而感到困惑了吧? - Jakub Hampl

3

是的;如果变量没有实际的语义意义,那么我认为在你描述的情况下,这是完全可以接受的。


想出一个例子很困难,你有吗? - Tim
2
@Tim:每当我在实现一个复杂方程时,我通常会将其分为多个阶段并分布在多行上。这些中间结果本身并没有任何意义。 - Oliver Charlesworth
1
我认为这个例子不好。你应该总是尝试找出拆分方程的合理含义,我从来没有见过无法找到的情况。然而,如果作为程序员你对算法的作用一无所知,那我完全同意你的观点! - stefan

1
无论何时您需要一个中间变量,旨在在操作其他内容期间暂时保存数据,我认为最好的名称是temp - 它清楚地描述了变量的功能。
示例:
char Temp[32]; sprintf(Temp, ...); RealVar += Temp;

int temp = a; a = b; b = temp;

1
如果临时变量持有Foo,我更喜欢使用tmpFoo。而更让我喜欢的是消除无意义的临时变量的需要。 - user395760

1

是的,我认为有几个:

var temp = "35°C";
var temp = Path.GetTempPath();

0

你可以在一个简短的函数体中只使用它的首字母来表示其含义,例如,在这种情况下,“m”会被很好地理解,考虑到函数名是获取/设置分钟的自描述名称。

var m = currentDate.Minute;

就像其他人所描述的那样,名称“temp”适用于交换变量值或作为临时文件路径的名称,仅此而已。


0

如果这是你能想到的最具描述性的名称。有时你可以将它扩展为"temp<something>",在这种情况下,"<something>"也是一个名称的候选。


-1

不,它不是。

在我看来:

tempPerson

tempLoopVariable

tempWhatever

或者甚至更好

temporaryWhatever

更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接