返回布尔值的函数的命名约定是什么?

xml*_*lmx 7 c++ coding-style naming-conventions

我不是母语为英语的人,所以我对返回布尔值的函数的命名约定感到困惑.

我知道以下函数名称是常规的:

bool is_valid();
bool is_sorted();
bool is_empty();
bool has_children();
bool can_draw();
Run Code Online (Sandbox Code Playgroud)

但是,我想知道另一个函数名称,除了"是,是,可以,有什么等"之外的动词,也是常规的,如下所示:

bool TryToCloseWindow();    // check to see if the user tries to close the window
bool IntendToCloseWindow(); // as above
bool FileExists();          // check to see if the file exists
Run Code Online (Sandbox Code Playgroud)

如果您是英语母语人士和程序员,您认为这三个功能名称是否常规?

Arn*_*rtz 7

简短回答你的标题问题:不同.有许多不同的约定,甚至可能比程序员更多的约定.有些约定希望在每个bool返回函数名称的开头都有一个"is",其他约定则没有.并且不要打扰有关下划线,CamelCase,lowerCamelCase等的质疑/争论.只要你坚持你选择的那个,它们都是同样可读的.

我认为很重要的是,函数名表示他们在做什么.返回bool的函数通常出现在条件或循环的上下文中.因此,我认为最好将您的预期名称放在这样的背景下,看看它是否正确.例如if (fileExists()) { /* ... */ }听起来不错.tryToCloseWindow()听起来像"嘿,编译器/程序,请关闭那个窗口".您的评论提供的不是您想要的提示.也许使用'userIsClosingWindow()'或类似的东西."intend"不是我用于函数名的动词.打算...... 意思是你想要做某事,你记住它,你正在考虑它,但没有真正的行动.因此,如果打算关闭窗口,只需执行此操作,或将其保留.没有必要告诉编译器"嘿,我打算关闭那个窗口,在几行中也许我真的会这样做......".而且您无法确定用户是否打算关闭窗口.除非他将他的Microsoft Mindreader设备插入USB端口并且您可以访问API,请给我一个链接,谢谢;)