应该将Left或Right表示为布尔值还是枚举

时间:2018-03-04 00:44:12

标签: types enums boolean enumeration strong-typing

对于包含布尔值和枚举作为基本类型的任何语言,我应该将该类型用于存储某些内容是left还是Right的变量。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

我使用枚举器。我不知道在没有查看文档的情况下查看某个人的项目true是指left还是right,但是对于调查人员来说显然是这样。我还担心代码的不同部分会改变默认值。

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

答案 1 :(得分:0)

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

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