Questions tagged «boolean»

9
如何用布尔清除器拨打电话?布尔陷阱
如@ benjamin-gruenbaum在评论中所指出的,这称为布尔陷阱: 说我有一个这样的功能 UpdateRow(var item, bool externalCall); 在我的控制器中,该值externalCall始终为TRUE。调用此函数的最佳方法是什么?我通常写 UpdateRow(item, true); 但是我问自己,我是否应该声明一个布尔值,以表明“真”值代表什么?您可以通过查看函数的声明来知道这一点,但是如果您看到类似以下内容,显然会更快,更清晰 bool externalCall = true; UpdateRow(item, externalCall); PD:不确定这个问题是否真的适合这里,如果不合适,我在哪里可以得到更多有关此的信息? PD2:我没有标记任何语言,因为我认为这是一个非常普遍的问题。无论如何,我使用c#,并且可接受的答案适用于c#
76 boolean  const 

16
为什么在布尔值变量上使用!boolean_variable == false
关于此问题的评论:检查方法是否返回false:将结果分配给临时变量,还是将方法调用直接置于条件中?说应该在测试条件时使用!boolean而不是boolean == false。为什么?对我boolean == false来说,英语更加自然,也更加露骨。抱歉,这仅是风格问题,但我想知道是否还有其他原因导致这种偏好!boolean?


8
当可以有意义地缺少值时,新的布尔字段是否比空引用更好?
例如,假设我有一个类Member,它具有一个lastChangePasswordTime: class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } 缺少其lastChangePasswordTime可能是有意义的,因为某些成员可能永远不会更改其密码。 但是根据“ 如果空值是邪恶的”,当可以有意义地缺少一个值时应该使用什么?和https://softwareengineering.stackexchange.com/a/12836/248528,我不应该使用null来表示有意义的缺失值。所以我尝试添加一个布尔标志: class Member{ . . . constructor(){ this.isPasswordChanged=false, this.lastChangePasswordTime=null, } } 但是我认为它已经过时了,因为: 当isPasswordChanged为false时,lastChangePasswordTime必须为null,并且检查lastChangePasswordTime == null与检查isPasswordChanged为false几乎相同,因此我更喜欢直接检查lastChangePasswordTime == null。 在此处更改逻辑时,我可能会忘记同时更新两个字段。 注意:当用户更改密码时,我会这样记录时间: this.lastChangePasswordTime=Date.now(); 此处的附加布尔字段是否比空引用更好?
39 null  boolean 

13
使用布尔参数确定值是否错误?
根据使用布尔参数确定行为是否错误?,我知道避免使用布尔参数来确定行为的重要性,例如: 原始版本 public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } 新版本: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } 但是,使用boolean参数来确定值而不是行为的情况如何呢?例如: public void setHint(boolean isHintOn){ this.layer1.visible=isHintOn; this.layer2.visible=!isHintOn; this.layer3.visible=isHintOn; } 我试图消除isHintOn标志并创建2个单独的函数: public void setHintOn(){ this.layer1.visible=true; this.layer2.visible=false; this.layer3.visible=true; } public void setHintOff(){ this.layer1.visible=false; this.layer2.visible=true; this.layer3.visible=false; } …

6
什么时候应该在C ++中使用布尔值?
我们为班级分配了一个作业,在那里我们必须创建一个Tic-tac-toe游戏。人们喜欢使自己复杂化,因此他们编写了包含菜单的复杂游戏。游戏结束时,您必须选择再次播放或退出程序。我int为此使用了一个变量,但我注意到一些同学在使用BOOL。 效率更高吗?将答案仅存储在一个值中int而不是将其存储在布尔值中,有什么区别?这些变量的确切目的是什么?
34 c++  boolean 


3
为什么C ++中的布尔类型支持++但不支持-?
为什么--布尔没有运算符,而布尔运算符却存在++呢? 我用C ++尝试过,不知道我的问题是否适用于另一种语言。我也很高兴知道。 我知道,我可以将运算符++与bool一起使用。它使布尔值等于true。 bool b = false; b++; // Now b == true. 为什么我们不能--相反地使用运算符? bool b = true; b--; // Now b == false; 它不是很有用,但我很好奇。

3
为什么Java布尔原始类型名称不是'bool'?
Java有 int 和 Integer boolean 和 Boolean 这似乎有点不一致,为什么不 bool与Boolean使用已建立的较短名称作为原始类型? 要么 integer与Integer保持类型名称一致? 我认为 C ++决定bool比Java决定使用很多时间boolean,也许还有一些(当时是非标准的)C扩展,所以对于来说,C会有历史优先权bool。我注意到我经常本能地一开始尝试使用bool(现代编辑器很快就发现了这一点,而无需进行额外的编译),因此很高兴知道当前事务状态的基本原理。 如果有人记得故事的一部分,甚至可以找到并链接到网络上相关的历史讨论,那将是很棒的。
28 java  history  boolean 

8
是否存在用于“真”,“假”和切换布尔值的术语?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 可以说我试图在一次技术会议上描述我的代码。 首先,我将布尔值设置foobar为true 和 其次,我将布尔值设置foobar为false 似乎有点罗word。如果foobar被拨动,我可能会说, 第三,我切换 foobar 通过这里的含义,您知道它是布尔值。所以我不应该能够: 第四,我对 foob​​ar进行了真实化 和 第五,我伪造 foob​​ar 通过暗示,哪个还会告诉我的听众我们正在处理布尔变量?有合适的术语吗?谢谢。

7
如果/ else阻止如何将真值表变为最小
如何获取真值表并将其转换为压缩的if块? 例如,假设我有一个真值表,其中A和B是条件,而x,y和z是可能的动作: A B | x y z ------------- 0 0 | 0 0 1 0 1 | 0 0 1 1 0 | 0 1 0 1 1 | 1 0 0 如果阻塞,则可以转换为以下内容: if(A) { if(B) { do(x) } else { do(y) } } else { do(z) } 这是一个简单的示例,但是我经常遇到几种情况,这些情况以不同的方式组合在一起会产生不同的输出,并且很难找出最紧凑,最优雅的方式在if块中表示其逻辑。

12
要为“ false”的布尔函数参数添加正确的注释?
从一些开源项目中,我收集了以下编码样式 void someFunction(bool forget); void ourFunction() { someFunction(false /* forget */); } 我一直对false这里的含义感到怀疑。它的意思是“忘记”,还是“忘记”是指它的相应参数(如上述情况),而“假”是要否定它? 哪种风格最常用,什么是避免歧义的最佳方法(或某些更好的方法)?

4
仅关注成功或失败时返回布尔值
我经常发现自己从一个方法返回一个布尔值,该方法用于多个位置,以便将一个方法周围的所有逻辑包含在一个地方。所有(内部)调用方法都需要知道该操作是否成功。 我正在使用Python,但问题不一定特定于该语言。我只能想到两种选择 引发异常(尽管情况并不特殊),并记住在调用函数的每个位置都捕获该异常 在执行操作时返回布尔值。 这是一个非常简单的示例,演示了我在说什么。 import os class DoSomething(object): def remove_file(self, filename): try: os.remove(filename) except OSError: return False return True def process_file(self, filename): do_something() if remove_file(filename): do_something_else() 尽管它是功能性的,但我真的不喜欢这种做事的方式,它“闻起来”,有时会导致很多嵌套的if。但是,我想不出一种更简单的方法。 os.path.exists(filename)在尝试删除之前,我可以使用更多的LBYL原理并使用它,但是不能保证文件不会同时被锁定(这不太可能,但是可能),我仍然必须确定删除是否成功。 这是“可接受的”设计吗?如果不是,那么设计它的更好方法是什么?


5
短路评估何时不好?
为了更清楚一点,我声明我已经花了很多时间使用不同的语言。但是直到现在它要么一直使用它,要么根本不支持它。 现在,我可以从需要VB.net的项目开始工作,并且我看到它在AND和ANDALSO方面提供了两种方式。第一个不会短路,第二个会短路。 因此,这使我想知道为什么?像这样进行设置似乎意味着人们经常想切换模式。但是我认为在任何情况下使用短路都是一件坏事。 我知道这很可能会涉及更多选项,因此,如果我需要将其放在其他地方,只需告诉我在哪里。 尽管我希望至少有一个正式的答案,但是关于为什么有两个选择总比总要做短路更好的原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.