c++ - "ContainsElement"和 "DoesContainElement"之间哪个更常规的函数名称?

标签 c++ function coding-style maintainability

<分区>

我正在编写一个函数来确定某个元素是否存在于容器中。我不知道如何选择函数名称:

bool ContainerType::ContainsElement(const ElementType& elem);

bool ContainerType::DoesContainElement(const ElementType& elem);

考虑以下两种情况:

版本 1:

ContainerType coll;
ElementType   elem;
...

if (coll.ContainsElement(elem))
{
    cout << elem << " exists." << endl;
}

版本 2:

ContainerType coll;
ElementType   elem;
...

if (coll.DoesContainElement(elem))
{
    cout << elem << " exists." << endl;
}

据我了解,我认为版本 1 更像是自然英语。不过,我也发现版本 2 的样式使用更广泛。

你怎么看?

更新:

FltIsOperationSynchronous
FltIsIoCanceled
FltIsVolumeWritable

以上三个函数名摘自Microsft的文档。如果去掉前缀“Flt”,它们是:

IsOperationSynchronous
IsIoCanceled
IsVolumeWritable

而不是

OperationIsSynchronous
IoIsCanceled
VolumeIsWritable

为什么?

最佳答案

contains 是最受欢迎的。 containsElement 可能是,而且我从未见过 doesContainElement。可能太长了。

如果您试图模仿英语,请认为 bool 函数通常与 if 一起使用。什么听起来更好:

    if( a.containsElement(b) )

    if( a.doesContainElement(b) )

    if( a.contains(b) )

?我认为是 3,然后是 1,然后是 2,是吗?

关于c++ - "ContainsElement"和 "DoesContainElement"之间哪个更常规的函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565324/

相关文章:

c# - 在 C# 代码中包含数据的格式

javascript - 如何在 JavaScript 中为内容添加样式?

c++ - 为什么 (18446744073709551615 == -1) 是真的?

c++ - 在易于使用的函数/类中包装 boost gzip 压缩器

javascript - ES6 类中明确定义但未定义的函数

python - 随机排列 DataFrame 的行,直到列中的所有连续值都不同?

r - 提取具有缺失值阈值的变量名称

java - 通过 PMD 在 java 中记录空构造函数

c++ - 指针的地址是什么意思?

c++ - C++ 的基本自定义字符串类