我需要一个好的变量名称作为一个布尔值,当一个对象是列表中的最后一个时,它返回false。
我能想出的唯一合适的名字是“inFront”,但我认为这不够具有描述性。
另一个选择是'isNotLast'。这不是一个好习惯(代码完成,第269页,使用正布尔变量名)。
我知道我可以更改变量定义。当一个对象是最后一个并且调用变量'isLast'时返回true,但是,如果我有第一个解释,它将使这个任务更容易。
答案 0 :(得分:52)
isBeforeTheLastItem
isInFrontOfTheLastItem
isTowardsTheFrontOfTheList
也许太罗嗦,但他们可能会帮助你提出想法。
答案 1 :(得分:32)
我的投票是将其命名为IsLast并更改功能。如果这不是一个真正的选择,我会将名称保留为IsNotLast。
我同意Code Complete(使用正布尔变量名称),我也相信规则会被破坏。关键是只有当你绝对不得不打破它们时才能打破它们。在这种情况下,没有其他替代名称与“破坏”规则的名称一样清晰。所以这是违反规则的时候之一。
答案 2 :(得分:17)
hasFollowingItems?或者hasFollowingXXXXs,其中XXXX是列表中的项目是什么?
答案 3 :(得分:13)
就个人而言,我会更改逻辑,或者查看业务规则,看看他们是否会指定任何潜在的命名。
因为,切换布尔值的实际条件实际上是“最后”的行为。我会说切换逻辑,并将其命名为“IsLastItem”或类似方法将是更优选的方法。
答案 4 :(得分:4)
isPenultimateOrPrior
isBeforeEnd
答案 5 :(得分:2)
Haskell使用init
来引用除列表的最后一个元素之外的所有元素(基本上是tail
的反转);会isInInit
工作,还是太不透明?
答案 6 :(得分:2)
一个简单的语义名称是last
。这将允许代码始终为正代码,如:
if (item.last)
...
do {
...
} until (item.last);
答案 7 :(得分:1)
怎么样:
hasSiblings
or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.)
or moreItems
虽然我认为即使你不应该制定制定“规则”的习惯,但有时最好的方法是制定例外规则(代码完整指南),在你的情况下,名称变量 isNotLast
答案 8 :(得分:0)
我会调用变量beforeLast
。
答案 9 :(得分:0)
要考虑的两个问题
变量的范围是什么(换句话说:您是在谈论局部变量还是字段?)? 与字段相比,局部变量的范围更窄。特别是,如果变量在一个相对较短的方法中使用,我不会太在意它的名字。当范围很大时,命名更重要。
我认为你对待这个变量的方式存在固有的冲突。一方面你说“当一个对象是列表中的最后一个时为假”,另一方面你也想把它称为“inFront”。列表中(不)最后一个对象不会打击我(不)inFront。我会选择isLast。
答案 10 :(得分:0)
我需要一个好的变量名来表示返回false的布尔值 当对象是列表中的最后一个对象时。
根据最新的PEP 8 Style Guide for Python Code,变量名称“应小写,必要时用下划线分隔单词,以提高可读性。” 因此,您应该为变量命名,例如
NSManagedObject
其他编程语言对变量(例如firstName,lastName)使用lowerCamelCase样式。但是,Python更喜欢underscore_separated样式。
答案 11 :(得分:-4)
我会选择isUnlast。
它简短,精辟,完美地描述了这种情况!