我正在编写一个函数来确定元素是否存在于容器中。我不知道如何选择之间的函数名称:
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
为什么呢?
答案 0 :(得分:1)
contains
是最受欢迎的。 containsElement
可能是,我从未见过doesContainElement
。可能太长了。
如果您尝试模仿英语,请认为bool
函数通常与if
一起使用。听起来更好:
if( a.containsElement(b) )
if( a.doesContainElement(b) )
if( a.contains(b) )
?我想3,然后是1,然后是2,不是吗?