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

C++ 返回布尔值的函数的命名约定是什么?,c++,coding-style,naming-conventions,C++,Coding Style,Naming Conventions,我不是以英语为母语的人,所以我对返回布尔值的函数的命名约定感到困惑 我知道以下函数名是常规的: bool is_valid(); bool is_sorted(); bool is_empty(); bool has_children(); bool can_draw(); 然而,我想知道另一个函数名(以“is、are、can、has等”以外的动词开头)是否也是常规名称,如下所示: bool TryToCloseWindow(); // check to see if the user

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

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

bool is_valid();
bool is_sorted();
bool is_empty();
bool has_children();
bool can_draw();
然而,我想知道另一个函数名(以“is、are、can、has等”以外的动词开头)是否也是常规名称,如下所示:

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 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()
这样的名称,则更有意义

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


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

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


我认为重要的是函数名表示它们正在做什么。返回布尔的函数通常出现在条件或循环的上下文中。所以我认为最好把你想要的名字放在这样的上下文中,看看它听起来是否正确。e、 g.
if(fileExists()){/*…*/}
听起来不错
tryToCloseWindow()
听起来像是“嘿,编译器/程序,请关闭那个窗口”。你的评论暗示这不是你想要的。可能使用“userIsClosingWindow()”或类似的东西。“intential”不是我用来表示函数名的动词。打算做某事意味着你想做某事,你心里有它,你在考虑它,但没有实际行动。所以,如果你想关上一扇窗户,就去关,或者离开它。不需要告诉编译器“嘿,我打算关闭那个窗口,在几行内也许我真的会这样做……”。您无法确定用户是否打算关闭窗口。除非他将他的Microsoft Mindreader设备插入USB端口,并且您可以访问API,否则请向我发送链接,谢谢;)

我只是想知道最后三个是否是常规的;bool是intentendtoclosewindow();bool IsFileExists();这些名称在语法上是不正确的。对于C语言(例如C++和java),没有固定的命名约定。这在很大程度上取决于个人或组织。不同的人/组织有不同的命名风格。我想知道后三种命名风格是否自然。WIN32 API有几个命名与前三种类似的函数。但是,如果您正在编写自己的代码,那么如何命名和格式化标识符完全取决于您自己。选择一种您觉得合适的样式,您甚至可以在项目之间更改样式。在一个项目中保持风格的连贯性。我真正的问题是:对于以英语为母语的人来说,最后三个看起来是否自然。如果你对布尔函数和属性的源代码中实际使用了哪些动词感兴趣,请看《非常感谢你的解释》。