Ответ 1
isBeforeTheLastItem
isInFrontOfTheLastItem
isTowardsTheFrontOfTheList
Возможно, слишком многословие, но они могут помочь вам дать идеи.
Мне нужно хорошее имя переменной для логического значения, которое возвращает false, когда объект является последним в списке.
Единственное достойное имя, которое я могу придумать, это "inFront", но я не думаю, что это достаточно описательно.
Другим вариантом будет "isNotLast". Это не очень хорошая практика (Code Complete, стр. 269, Использовать логические имена логических переменных).
Мне известно, что я могу изменить определение переменной. Таким образом, true возвращается, когда объект является последним и вызывает переменную isLast, однако это облегчило бы эту задачу, если бы у меня было первое объяснение.
isBeforeTheLastItem
isInFrontOfTheLastItem
isTowardsTheFrontOfTheList
Возможно, слишком многословие, но они могут помочь вам дать идеи.
Мое голосование - назвать его IsLast и изменить функциональность. Если это не вариант, я бы оставил имя IsNotLast.
Я согласен с Code Complete (используйте положительные логические имена переменных), я также считаю, что правила нарушены. Ключ состоит в том, чтобы сломать их только тогда, когда вам абсолютизировать. В этом случае ни одно из альтернативных имен не отличается от имени, которое "ломает" правило. Так что это один из тех времен, когда нарушение правила может быть в порядке.
hasFollowingItems? или hasFollowingXXXXs, где XXXX - это то, что элемент в вашем списке?
Лично больше, чем что-либо, я бы изменил логику или посмотрел на бизнес-правила, чтобы определить, не диктуют ли они какие-либо потенциальные имена.
Так как фактическое условие, которое переключает логическое значение, фактически является актом "последнего". Я бы сказал, что переключение логики и называние ее "IsLastItem" или аналогичного будет более предпочтительным методом.
isPenultimateOrPrior
isBeforeEnd
Haskell использует init
для обозначения всех, кроме последнего элемента списка (в основном обратного к tail
); будет работать isInInit
, или это слишком непрозрачно?
Простым семантическим именем будет last
. Это позволит коду всегда иметь положительный код:
if (item.last)
...
do {
...
} until (item.last);
Как насчет:
hasSiblings
or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.)
or moreItems
Хотя я считаю, что даже если вы не должны привыкать к "правилам", иногда лучший способ добиться чего-то может состоять в том, чтобы сделать исключение из правила (общие правила Code), а в вашем случае - имя переменная isNotLast
Я бы назвал переменную beforeLast
.
Два вопроса, чтобы подумать о
Какова область действия переменной (другими словами: говорите ли вы о локальной переменной или поле?)? Локальная переменная имеет более узкую область действия по сравнению с полем. В частности, если переменная используется в относительно коротком методе, мне было бы не так много о ее имени. Когда масштаб является большим, имя важнее.
Я думаю, что существует такой конфликт, в котором вы рассматриваете эту переменную. С одной стороны, вы говорите "false, когда объект является последним в списке", где, с другой стороны, вы также хотите назвать его "inFront". Объект, который (не) последний в списке, не ударяет меня (не) inFront. Это я бы пошел с isLast.
Мне нужно хорошее имя переменной для логического значения, которое возвращает false, когда объект является последним в списке. Согласно последнему Руководству по стилю PEP 8 для кода Python, имена переменных "должны быть строчными, а слова должны быть разделены подчеркиванием, чтобы улучшить читаемость". Таким образом, вы должны назвать свою переменную, например,
is_not_last
Я бы пошел с isUnlast.
Он короткий, содержательный, и описывает ситуацию отлично!