0

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

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

为什么?

4

1 回答 1

1

contains是最受欢迎的。 containsElement可能是,我从来没有见过doesContainElement。应该是太长了。

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

    if( a.containsElement(b) )

    if( a.doesContainElement(b) )

    if( a.contains(b) )

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

于 2013-09-02T03:35:23.153 回答