如何命名保存IsFoo()函数返回值的bool?

时间:2014-11-18 09:43:37

标签: coding-style boolean naming-conventions

我读到,命名返回像IsChecksumCorrect(Packet)这样的bool的函数是一个很好的约定,但我也读到它是一个很好的约定来命名像IsAvailable = True这样的布尔变量< / p>

但这两条规则是不相容的:我不能写:

IsChecksumCorrect = IsChecksumCorrect(Packet)

那么命名存储此类函数返回的布尔值的变量的最佳方法是什么?

PS:如果您能想出一种不依赖于改变案例的方式(某些语言 - 如Delphi - 不区分大小写),则可以获得额外的分数。

1 个答案:

答案 0 :(得分:0)

首先,只有不需要参数的函数才有困难,在你的例子中,变量应该只被称为IsPacketChecksumCorrect

即使是没有参数的函数,我认为如果你只是缓存函数的结果,你只会遇到问题,为了性能,你可以安全地用函数调用替换变量的所有实例,如果它不是'为了表现。在所有其他情况下,我认为您总是可以为变量提供更具体的名称。

如果您确实只是缓存,为什么不调用变量Functionname_cache?我觉得很清楚。

如果你需要在你的项目中使用很多这种“技术”并且 _cache 看起来太长或者你不喜欢它你就可以很好地解决你自己的约定;只要你保持一致,你就可以采用对你最有效的方法,对项目不熟悉的人只需要解释一次惯例,他们就会很容易地认出它。


顺便说一句,关于布尔值命名的惯例有各种各样的意见。就个人而言,我更喜欢将主题放在首位,这使得Ifs更具可读性,例如: ChecksumIsCorrectChecksumCorrectChecksumCorrectness。我实际上不想完全放置 Is ,即使你省略它,这个名字通常仍然清晰。