左或右应表示为布尔值还是枚举[关闭]

问题描述 投票:0回答:2

对于包含布尔值和枚举作为基本类型的任何语言,我应该将该类型用于存储是否为leftRight的变量。

我最初的直觉是使用枚举,因为它更具描述性 - 绝对是枚举的一大优点。

但是在我看来,在一个值必须是LeftRight的情况下,布尔值会更安全且内存效率更高 - 这两个点都支持或使用布尔值。

还有一个问题是布尔值具有自然方向,但对于像Left Right这样的值,没有自然映射意味着你需要使用类似这样的值isLeft - 反对使用布尔值。

是否存在这样的值的约定或最佳实践,这些值既是二元的又是独占的,但是对于开/关,零/一或任何其他自然布尔解释没有任何直接对称性?

types enums boolean enumeration strong-typing
2个回答
2
投票

上下文:我主要使用C ++

我会使用一个枚举器。我不知道看某人的项目true是否意味着leftright没有检查文档,但是对于调查员来说显然是这样。我还担心代码的不同部分会改变默认值。

您可以使用常量(例如,const bool left = true;)绕过更改的默认值,但这会在代码中引入其他有趣的选项(bool is_on = right;)。


0
投票

我不知道其他开发人员的意见是什么,但我的意思是:你的编码效率越高越好,可读性就是第二。

所以布尔几乎总是更有效率。这就是我要去的那个。

© www.soinside.com 2019 - 2024. All rights reserved.