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

时间:2012-11-30 05:25:22

标签: c++ coding-style naming-conventions

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

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

bool is_valid();
bool is_sorted();
bool is_empty();
bool has_children();
bool can_draw();

但是,我想知道另外一个以“是,是,可以,有”等动词开头的函数名称是否也是常规的如下:

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

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

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

一般来说,这应该是命名约定,如下面以小写字母开头的那个。

bool tryToCloseWindow();    // check to see if the user try to close the window
bool intendToCloseWindow(); // as above
bool fileExists();          // check to see if the file exists

答案 2 :(得分:0)

如果你使用像isValid()这样的名字,那就更有意义了。

它将返回值truefalse,因此对于if(isValid()) ...,任何人都可以轻松理解这个概念。

通常并非所有组织都遵循相同的命名约定。这取决于公司,公司,开发商和开发商。