我不是母语为英语的人,所以我对返回布尔值的函数的命名约定感到困惑。
我知道以下函数名称是常规函数:
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
如果您是英语母语人士和程序员,您认为这三个功能名称是否常规?
答案 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()
这样的名字,那就更有意义了。
它将返回值true
或false
,因此对于if(isValid()) ...
,任何人都可以轻松理解这个概念。
通常并非所有组织都遵循相同的命名约定。这取决于公司,公司,开发商和开发商。