【发布时间】:2013-06-03 00:16:41
【问题描述】:
我认为这是一个非常普遍的编程问题,因为布尔语法在许多常用语言中或多或少是相同的。
但我的问题仍然主要针对 php 和 javascript。
假设我想编写一个 if 语句,如果变量等于 2,3 或 5,则返回 true。 而且这个变量的名字很长,所以像这样:
if((An_Object_With_A_Long_Name.Has_Also_An_Array[With_An_Index_Too]==2)
|| (An_Object_With_A_Long_Name.Has_Also_An_Array[With_An_Index_Too]==3)
||(An_Object_With_A_Long_Name.Has_Also_An_Array[With_An_Index_Too]==5))
{
return true;
}
我真的希望我的代码看起来更短,几个月后阅读它不会那么令人沮丧:)
所以我可以把它简化成类似的东西
if(An_Object_With_A_Long_Name.Has_Also_An_Array[With_An_Index_Too]==2||3||5)
感谢您的帮助!
【问题讨论】:
-
创建一个包含有效值的集合(列表、数组等),然后执行
if validValues.Contains(An_Object_With_A_Long_Name.Has_Also_An_Array[With_An_Index_Too])) { return true; }之类的操作 -
谢谢,但我要求这样做的原因是我试图避免额外的内存分配,所以如果有一种无需额外变量的方法,我将不胜感激。
-
额外的内存分配?有多少个有效值?几亿的集合可能会消耗 1 GB 的内存。
-
你需要首先担心干净的代码。如果遇到内存问题,请调试和测试以确定需要改进的地方。
标签: oop boolean boolean-expression