用于传递布尔参数的编码样式

时间:2012-11-07 09:33:08

标签: styles boolean clarity

我刚与同事讨论一种方法,用法看起来有点像这样:

String myString = getString(fields [10],true);

现在这是我的问题, true 做了什么?

显而易见的答案是查看方法定义并查看它对布尔值的作用,但为什么我需要这样做呢?是否有更好的编码风格可以解释方法调用中布尔值的用途?

我认为最初要改变接受特定字符串的方法,但这太松散了。

我能想到的最好的想法是创建一个本地布尔值,如下所示:

boolean thisShouldBeUpperCased = true;

String myString = getString(fields [10],thisShouldBeUpperCased);

之前有没有人遇到过这种情况,还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

通常使用C语言,您可以使用consts或enums来提高可读性,例如

const bool kConvertToUpperCase = true;
const bool kDoNotConvertToUpperCase = false;

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase
};

上述方法也允许可扩展性,例如,如果一个设计最初为特定参数调用两个可能的选项,然后可以实现为布尔值,但是后来这变成了三个(或更多)选项,需要一个int或一个枚举 - 你不需要切换表单明确的true / false文字到处都是等值。

E.g。

const int kConvertToLowerCase = 2;
const int kConvertToUpperCase = 1;
const int kDoNotConvertToUpperCase = 0;

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase,
    kConvertToLowerCase
};