Подтвердить что ты не робот

Соглашения о присвоении имен: как назвать логическую переменную?

Мне нужно хорошее имя переменной для логического значения, которое возвращает false, когда объект является последним в списке.

Единственное достойное имя, которое я могу придумать, это "inFront", но я не думаю, что это достаточно описательно.

Другим вариантом будет "isNotLast". Это не очень хорошая практика (Code Complete, стр. 269, Использовать логические имена логических переменных).

Мне известно, что я могу изменить определение переменной. Таким образом, true возвращается, когда объект является последним и вызывает переменную isLast, однако это облегчило бы эту задачу, если бы у меня было первое объяснение.

4b9b3361

Ответ 1

isBeforeTheLastItem

isInFrontOfTheLastItem

isTowardsTheFrontOfTheList

Возможно, слишком многословие, но они могут помочь вам дать идеи.

Ответ 2

Мое голосование - назвать его IsLast и изменить функциональность. Если это не вариант, я бы оставил имя IsNotLast.

Я согласен с Code Complete (используйте положительные логические имена переменных), я также считаю, что правила нарушены. Ключ состоит в том, чтобы сломать их только тогда, когда вам абсолютизировать. В этом случае ни одно из альтернативных имен не отличается от имени, которое "ломает" правило. Так что это один из тех времен, когда нарушение правила может быть в порядке.

Ответ 3

hasFollowingItems? или hasFollowingXXXXs, где XXXX - это то, что элемент в вашем списке?

Ответ 4

Лично больше, чем что-либо, я бы изменил логику или посмотрел на бизнес-правила, чтобы определить, не диктуют ли они какие-либо потенциальные имена.

Так как фактическое условие, которое переключает логическое значение, фактически является актом "последнего". Я бы сказал, что переключение логики и называние ее "IsLastItem" или аналогичного будет более предпочтительным методом.

Ответ 5

isPenultimateOrPrior

isBeforeEnd

Ответ 6

Haskell использует init для обозначения всех, кроме последнего элемента списка (в основном обратного к tail); будет работать isInInit, или это слишком непрозрачно?

Ответ 7

Простым семантическим именем будет last. Это позволит коду всегда иметь положительный код:

if (item.last)
    ...

do {
   ...
} until (item.last);

Ответ 8

Как насчет:

 hasSiblings
 or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.)
 or moreItems

Хотя я считаю, что даже если вы не должны привыкать к "правилам", иногда лучший способ добиться чего-то может состоять в том, чтобы сделать исключение из правила (общие правила Code), а в вашем случае - имя переменная isNotLast

Ответ 9

Я бы назвал переменную beforeLast.

Ответ 10

Два вопроса, чтобы подумать о

  • Какова область действия переменной (другими словами: говорите ли вы о локальной переменной или поле?)? Локальная переменная имеет более узкую область действия по сравнению с полем. В частности, если переменная используется в относительно коротком методе, мне было бы не так много о ее имени. Когда масштаб является большим, имя важнее.

  • Я думаю, что существует такой конфликт, в котором вы рассматриваете эту переменную. С одной стороны, вы говорите "false, когда объект является последним в списке", где, с другой стороны, вы также хотите назвать его "inFront". Объект, который (не) последний в списке, не ударяет меня (не) inFront. Это я бы пошел с isLast.

Ответ 11

Мне нужно хорошее имя переменной для логического значения, которое возвращает false, когда объект является последним в списке. Согласно последнему Руководству по стилю PEP 8 для кода Python, имена переменных "должны быть строчными, а слова должны быть разделены подчеркиванием, чтобы улучшить читаемость". Таким образом, вы должны назвать свою переменную, например,

is_not_last

Ответ 12

Я бы пошел с isUnlast.

Он короткий, содержательный, и описывает ситуацию отлично!