Bool类型对于绝大多数编程语言来说都是最重要的基础类型,我们在很多地方都需要频繁的使用它,但有的时候如果我们使用其它类型替代Bool类型会让代码变得更加清晰可读。比方说我们考虑一下控制UITableView的状态。
var allowsSelection: Bool
var allowsMultipleSelection: Bool
当我们使用两个boolean类型变量控制UITableView的状态时,如果出现了 allowsMultipleSelection = true 而 allowsSelection = False的时候,这代表的是一种什么状态呢?两个boolean值可以确定四种状态,但实际上我们只需要三种状态,当我们遇到类似的情况时,我们可以尝试使用enum来替代bool
enum SelectionMode {
case None
case Single
case Multiple
}
使用枚举,我们可以用一种属性状态来替换掉bool两种属性状态,而且在多分支结构里面,我们也不用写更复杂的条件表达式。
其实有的时候即使是只有一个boole变量的时候,我们也可以考虑使用枚举来替换它。比方说:
enum AccessControl {
case Public
case Private
}
这种替代的好处,是我们可以避免写出这样的代码:
if !isPublic {
// Private asset
...
}
而是使用这样的代码:
if access == .Private {
}
代码的可读性是一项非常重要指标,我们代码不应该仅仅只能够满足功能需求,作为一名好的程序员我们应该时时刻刻的为提高代码的可读性而努力。
本文翻译自