Какое более обычное имя функции находится между "ContainsElement" и "DoesContainElement"?
Я пишу функцию, чтобы определить, существует ли элемент в контейнере. Я не знаю, как выбрать имя функции между:
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
Зачем?
1 ответ
contains
самый популярный containsElement
может быть, и я никогда не видел doesContainElement
, Наверное, слишком долго.
Если вы пытаетесь подражать английскому, подумайте, что bool
функции обычно используются с if
, Что звучит лучше:
if( a.containsElement(b) )
if( a.doesContainElement(b) )
if( a.contains(b) )
? Я думаю 3, затем 1, затем 2, не так ли?