返回布尔值的函数的命名约定是什么
What are the naming conventions of functions that return boolean?
我不是以英语为母语的人,所以我对返回布尔值的函数的命名约定感到困惑。
我知道以下函数名称是常规的:
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()
这样的名称,则更有意义。
它将返回值true
或false
,因此对于if(isValid()) ...
,任何人都可以很容易地理解这个概念。
通常并非所有组织都遵循相同的命名约定。这取决于不同的公司,不同的开发商。
- "std::unique_XXX"命名约定背后的基本原理是什么?
- 在命名空间名称之前加上 :: 是什么意思?
- 是什么让一些命名函数/运算符与众不同?
- 命名空间 Win 没有成员"simpleControl"是什么意思
- 使用与号后跟下划线命名的变量是什么意思?
- 在Visual Studio中生成的匿名命名空间变量的损坏名称的数字部分是什么意思
- 什么是"使用命名空间 std;"的好替代方案?
- DLL 的"good"调用约定是什么?
- 合并函数参数的适当命名约定是什么?
- 返回布尔值的函数的命名约定是什么
- 旧样式演员的命名演员是什么:pv =(void*)ps;
- 当我需要添加一个无用的返回语句时,C++约定是什么
- 在 c++ 中在命名空间内定义类的优势是什么
- c++setter编码约定.输入变量名称应该是什么
- 在两个不同的命名函数之间进行选择的特征的替代方法是什么?
- 什么是 RAII 类的常见命名约定
- 什么是“使用命名空间 std;”,为什么我需要它来编译具有最新C++编译器的程序
- 这个标题的命名约定指的是什么
- WinRT中字段的正确命名约定是什么
- 命名约定-在C++标识符中使用下划线的规则是什么