Я пишу функцию, чтобы определить, существует ли элемент в контейнере. Я не знаю, как выбрать имя функции между:Что более условное имя функции между «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 используется более широко.
Как вы знаете?
Update:
FltIsOperationSynchronous
FltIsIoCanceled
FltIsVolumeWritable
Три названия функций выше взяты из документации Microsft в. Если префикс "Flt" отбрасываются, они:
IsOperationSynchronous
IsIoCanceled
IsVolumeWritable
вместо
OperationIsSynchronous
IoIsCanceled
VolumeIsWritable
Почему?
Просмотрите мое обновление. Я думаю, что Microsoft и многие другие компании, похоже, любят еще 2. Зачем? – xmllmx
@xmllmx Одно из возможных объяснений состоит в том, что, начиная с вспомогательного глагола ('is',' does', 'has' и т. Д.), Ясно, что функция возвращает' bool'. 'contains' не очень далек от него, но 1) вы не использовали бы его в одиночку в английском вопросе, и 2) вам нужно дойти до конца, чтобы заметить, что это глагол, который намного длиннее, чем' is', ' делает', или 'has'. –