Coding style 是或将作为布尔值的前缀

Coding style 是或将作为布尔值的前缀,coding-style,Coding Style,当命名布尔值或返回布尔值的函数时,通常使用“is”作为前缀,例如 isPointerNull isShapeSquare 当引用多个项目时,应该是: ArePointerNull或IsPointerNull AreShapeNull或IsShapeNull 我可以看到两者的论据;is提供了一致性,也许可读性稍好一些,are使代码以更自然的方式读取 有什么意见吗?请不要使用isPointerNull。一致性并不是牺牲语法和可读性的理由。首先,isPointerNull很难看。不要那样做 我

当命名布尔值或返回布尔值的函数时,通常使用“is”作为前缀,例如

  • isPointerNull
  • isShapeSquare
当引用多个项目时,应该是:

  • ArePointerNull或IsPointerNull
  • AreShapeNull或IsShapeNull
我可以看到两者的论据;is提供了一致性,也许可读性稍好一些,are使代码以更自然的方式读取


有什么意见吗?

请不要使用isPointerNull。一致性并不是牺牲语法和可读性的理由。

首先,
isPointerNull
很难看。不要那样做


我通常使用
any
all
,因为
可能是不明确的。它的意思是“有空指针”还是“指针都是空的”
AnyPointerNull
AllPointerNull
清除这一点,IMO.

IMO-取决于布尔变量的上下文(用法和可读性)

例如:
-如果变量引用的单个指针为null,我将使用:isPointerNull
-如果变量引用的多个指针为null,我将使用:arePointersNull


这取决于语言。如果您使用的是Java,“isPointerNull”将被解释为“PointerNull”字段,如果您使用的是任何JavaBean处理工具,“ArePointerNull”将不会被解释为该字段


我同意可读性是最重要的,但bean约定允许对对象进行通用解析。

isPointerNull看起来像一个输入错误。arePointersNull很好地传达了这样一个事实,即在考虑此布尔值时涉及到多个对象。但如果您想要一致性,可以引用数组或集合,指针应该是:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • 等等

如果我引用布尔变量的getter方法,不管它根据go语法规则有多难看,我个人都会使用iswhater。但是,如果我有一种方法,可以根据一些商业规则(例如,一个或多个数字是/是素数)对一个对象进行某种检查,我会使用让我的英语老师感到高兴的名称。

真的,真的很晚了,但是关于一个最被误解的前缀策略,我有一些粗浅的想法:

  • 代码应该给出指令,而不是提问。iUserAdmin?你在问我吗?我不知道,你告诉我。哦,有人在我后面吗?我不是在读陀思妥耶夫斯基充满哲学问题的故事。我正在读一组正式的命令,供计算机执行。祈使语气动词,肯定陈述,逻辑条件
  • 代码应该或多或少使用语法正确的英语。可量化性和多样性很重要
所以

或者,正如公认的答案所指出的那样,更加不含糊

if (allPointersAreNull())

干杯

+1-我同意arePointersNull更好。你也可以有一个指针,然后一个If语句的清晰度会更好。尽管一个方法名称对我们来说可能没有意义,但许多工具都希望您遵守JavaBean语法等标准约定,如果您偏离了,您会绊倒自己……最终只会符合标准。这是否应该是一个社区wiki,因为这是一个意见问题?“只要可以,请避免固有的负面影响”这是一个非常好的观点,我以前并没有这样想过,但我将来会记住这一点。干杯不要忘记在某些操作后调用的布尔方法可能会更改其引用的值,例如,
wasItemNull()
(如在JDBC中).isPointerSetNull等复数名称可以替换为单数组名称,如
isPointerSetNull
。虽然我们谈论的是多个项目,但这是否意味着不止一个是空的(有些可能是非空的),还是意味着有多个指针,它们都是空的?
if (allPointersAreNull())