5
A
回答
7
它已经有一段时间,因为我最后再阅读代码完成,但我依稀记得麦康奈尔解决这个,的一句“转折conherence”跳进我的脑海。简单地说,
void f(int x, int y, bool b)
与
void f1(int x, int y)
void f2(int x, int y)
往往是一个选择,这取决于f
如何相似或不同将true
下的行为与false
,它可能是有意义的掰成两个函数,给他们不同的名字。通常第三种选择更好,即将bool
更改为两值枚举,其中枚举名称明确区分。
关键是看看电话网站,看看它的意思是否清楚,只是通过阅读代码。如果你很想把一个评论对每一个布尔调用点:
f(3, 4, true /* absoluteWidgetMode */)
,被呼叫的网站通常与布尔常数打电话,这是一个强烈的气味,你应该把它分解成多种功能。
4
布尔参数意义大部分的时间,基本上值得同样的批评幻数做的。您只有查看函数调用,才有可能不了解所做的事情。
因此,即使为非常相似的代码(追加/覆盖文件)提供布尔参数很方便,请将其保留为内部私有,并且不要让它在界面中可见。
相反,总是迫使程序员是明确:
使用枚举给予了区别有意义的说明或只使用独立的功能。
比较:
WriteFile(path, "Hello, World", true)
与
WriteFile(path, "Hello, World", FileMode.Append)
或者干脆
AppendFile(path, "Hello, World")
相关问题
- 1. SML:布尔函数
- 2. 如何将布尔函数数组合并成一个布尔函数?
- 3. 多个布尔变量作为函数参数
- 4. 如何定义一个布尔函数参数是可选的?
- 5. 布尔作为参数/参数?
- 6. TypeError:布尔函数不是函数
- 7. 返回带有一个或两个参数的<=的函数
- 8. 错误:布尔运算符==必须正好有两个参数
- 9. Objective-C的传递两个参数为布尔方法
- 10. C#重构:布尔参数
- 11. 布尔参数步骤
- 12. 脚本的布尔参数
- 13. Jbehave布尔命名参数
- 14. 递归函数 - 两个函数或最后一个可选参数
- 15. 如何将布尔函数简化为两个逻辑门?
- 16. 返回一个布尔函数
- 17. 简单的布尔函数
- 18. VB中的布尔函数
- 19. 布尔函数的程度
- 20. 函数返回布尔值?
- 21. 布尔函数BackgroundWorker c#
- 22. 递归布尔函数
- 23. C++整数数组和布尔函数
- 24. 3个或更多布尔变成真时执行函数angularJs
- 25. 作为函数参数的Java布尔方程
- 26. 函数中的布尔参数会产生错误?
- 27. Selenium java - 从pageObjects传递布尔参数通用函数
- 28. 带模板布尔参数的函数:保证被优化?
- 29. 谓词函数中的两个参数
- 30. jquery函数的两个参数
是什么,即使是什么意思?你能提供一个代码示例吗? – NullUserException 2010-10-02 17:58:29
是的,有很多规则。所有这些都是矛盾的,所有这些都是个人(或团队)偏好的问题。我个人的规则很简单:如果我觉得需要给方法添加注释或者调用方法,我需要改变它。 – Tergiver 2010-10-02 18:02:24