Является ли "temp" хорошим именем переменной? - PullRequest
8 голосов
/ 12 марта 2011

Иногда я несколько минут пытался придумать хорошее имя переменной, когда понял, что этот крошечный цикл не стоит усилий.Есть ли ситуация, когда было бы оправданно называть переменную "temp"?

Обновление : Я должен был быть более ясным, поскольку вы все программисты!Я не ищу случаев, когда «temp» фактически описывает функцию переменной, но случаев, когда это вообще ничего не значит.

Ответы [ 8 ]

10 голосов
/ 12 марта 2011

Конечно, если вы поменялись местами;

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

Или, если вы используете переменные обозначения, такие как calc для расчета и т. Д., Вы должны использовать temp для температуры;)

4 голосов
/ 12 марта 2011

Конечно. При моделировании погоды:

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
2 голосов
/ 12 марта 2011

Да, я думаю, что есть пара:

var temp = "35°C";
var temp = Path.GetTempPath();
2 голосов
/ 12 марта 2011

Да; если переменная не имеет реального семантического значения, то я бы сказал, что в описываемой вами ситуации это вполне приемлемо.

0 голосов
/ 01 апреля 2011

Нет, это не так.

ИМХО:

tempPerson

tempLoopVariable

tempWhatever

или даже

temporaryWhatever

лучше.

0 голосов
/ 12 марта 2011

Вы можете использовать только первую букву его значения для короткого тела функции, в этом случае «m» будет хорошо понято, учитывая, что имя функции, которая получает / устанавливает минуты, имеет самоописываемое имя, например,

var m = currentDate.Minute;

Как кто-то еще описал, имя "temp" подходит для обмена значениями переменных или, вероятно, как имя для временного пути к файлу, ничего более.

0 голосов
/ 12 марта 2011

Если это самое описательное имя, которое вы можете придумать.Иногда вы можете расширить его до «temp <<em> что-то >», и в этом случае «<<em> что-то >» также является кандидатом на имя.

0 голосов
/ 12 марта 2011

Всякий раз, когда вам нужна промежуточная переменная, предназначенная для временного хранения данных во время манипуляции чем-то другим, IMO имя best - temp - оно четко описывает функцию переменных.

Примеры:

char Temp[32]; sprintf(Temp, ...); RealVar += Temp;

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