我是否应该始终使用“ is”作为布尔变量的前缀?[关闭]


49

是否应该始终将is布尔变量用作前缀?指示过去的布尔值呢?我应该写isInitialized还是wasInitialized?我应该写属性IsManyMembers还是HasManyMembers

有没有最佳做法?还是我应该按照英语规则写作?



Answers:


53

不是真的,因为布尔值并不总是用来表示对象“是”某种东西。

“有”是同等有效的前缀“是”,“可以”在特定情况下也有效,此外,我也看到了后缀“能”。

So Object herring:-
 isFish = true
 isCat = false
 hasScales = true
 hasFur = false
 canSwim = true
 wasEgg = true
 eatAble = true

Object moggy:-
 isFish = false
 isCat = true
 hasScales = false
 hasFur = true
 canSwim = false
 wasEgg = false
 eatAble = false

这完全取决于什么使程序具有可读性。


37
我认为我会选择canBeEaten或isEdible而不是eatAble。
kzh

3
@kzh-isEdible很好!对于canBeEaten不太确定,因为它发生在对象上而不是对象可以执行的操作。挑剔我知道:-)。
James Anderson

1
指示是否允许某些内容的标志呢?是否清楚“ AllowsExtensions”?还是“ DoesAllowExtensions”更清晰(即使更长)?
反向工程师

1
如果您确实使用-able作为后缀,则我不会将其大写,因为它不是一个字。例如,可穿戴的,而不是可穿戴
JK。

2
@kzh:我最初读eatAble为“可以吃”,而不是“可以吃”。总而言之,它是模棱两可的,确实可以避免。
平坦的

7

我会遵循英语规则。我倾向于考虑下一个编码器,如果您难以理解该编码器,它将成为挥舞着斧头的疯子。当我牢记这一点时,对我来说,最好的选择就是保持代码的整洁和易于阅读,这意味着最好的英语和领域语言。


2
“如果鳕鱼太难理解”,坚持我看到的另一个答案的鱼/猫主题
scottyseus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.