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

What are the naming conventions of functions that return boolean?

本文关键字:是什么 命名约定 函数 返回 布尔值      更新时间:2023-10-16

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

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

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

然而,我想知道另一个以"is,are,can,has,etc."以外的动词开头的函数名是否也是常规的:

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

如果你是一个以英语为母语的程序员,你认为这三个函数名是传统的吗?

标题问题的简短答案:与众不同。有很多不同的约定,甚至可能比程序员还要多。有些约定希望在每个返回函数名称的bool的开头都有一个"is",而另一些则不然。不要对下划线、CamelCase、lowerCamelCase等进行质疑/争论。只要你坚持你选择的那个,它们都同样可读。

我认为的重要之处在于函数名表达了它们正在做的事情。返回布尔的函数经常出现在条件语句或循环的上下文中。所以我认为最好把你想要的名字放在这样的背景下,看看它听起来是否正确。例如CCD_ 1听起来不错。tryToCloseWindow()听起来像"嘿,编译器/程序,请关闭那个窗口"。你的评论暗示了这不是你想要的。也许可以使用"userIsClosingWindow()"或类似的东西。"意图"不是我用来称呼函数名的动词。打算做某事意味着你想做某事,你心里有它,你在想它,但没有真正的行动。因此,如果打算关闭一个窗口,就去做,或者离开它。不需要告诉编译器"嘿,我打算关闭那个窗口,几行后也许我真的会去做…"。你也没有办法确定用户是否打算关闭窗口。除非他将他的微软读卡器设备插入USB端口,并且你可以访问API,请给我发一个链接,谢谢;)

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

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

如果使用像isValid()这样的名称,则更有意义。

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

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