代码之家  ›  专栏  ›  技术社区  ›  NoozNooz42

布尔值,英语否定和简单地摆脱布尔值

  •  0
  • NoozNooz42  · 技术社区  · 14 年前

    通常,当您编写代码时,会有一个标志指示两种可能性,如下所示:

    CACHING_AUTHORIZED
    CACHING_UNAUTHORIZED
    

    CACHING_ON
    CACHING_OFF
    

    如果你用布尔值来存储它,通常它只是“读起来很奇怪”:

    CACHING_ON = false;
    CACHING_OFF = true;
    

    CACHING_ON = true;
    CACHING_OFF = false;
    

    其中一种可能是:

    CACHING
    

    if ( CACHING )
    

    if ( !CACHING )
    

    但有时你真的需要“开”和“关”两种形式。

    问题是:无论你选哪一个,它都不会有太大的改变,不管你怎么转,它都没有多大意义。

    获取条件 不相容 或者只是 条件

    缓存\u ON=false;
    缓存\u OFF=真;
    

    缓存\u ON=true;
    CACHING\u OFF=假;
    

    说得过去,我们不应该简单地去掉布尔值,然后做:

    CACHING_ON = 1;
    CACHING_OFF = 2;
    

    当然,您丢失了布尔值,但至少是“1”和“2” 不能 带来任何混乱。

    使用一个新的工具不好吗 内景

    1 回复  |  直到 14 年前
        1
  •  1
  •   SpliFF    14 年前

    您的方法使您不清楚该值是布尔值。我觉得我应该可以赋值3。

    我不太明白你的意思。如果你有2个布尔值,你就代表了4种可能的状态,所以你不应该用一种只有2个选项的方式来命名变量。也许应该改用枚举和常量或标志。

    CACHING = ON
    CACHING = OFF
    CACHING = EITHER
    CACHING = UNKNOWN
    CACHING = UNKNOWABLE
    CACHING = UNTHINKABLE