2

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

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

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

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

我最初想改变方法以接受特定的字符串,但这太松了。

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

布尔 thisShouldBeUpperCased = true;

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

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

4

1 回答 1

0

通常在类似 C 的语言中,您可能会使用 const 或枚举来提高可读性,例如

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

或者

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase
};

上述方法还允许可扩展性,例如,如果设计最初为特定参数需要两个可能的选项,然后可以将其实现为布尔值,但后来这变成了三个(或更多)选项,需要一个 int 或一个 enum -然后,您不需要在任何地方将表单显式true/false文字切换到它们的等效值。

例如

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

或者

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase,
    kConvertToLowerCase
};
于 2012-11-07T09:57:29.493 回答