What is truth? 哪个才是「真」

由于一些历史原因,整数在 Objective-C 里面写作 int,布尔值则是写作 BOOL。绝大多数的原始数据类型是用小写表示的(比如 integers, floats…),但是 BOOL 是一个例外,并且在这个语言里显得有些古怪。

Objective-C 的古怪体现在两个方面:首先你会发现布尔值有两种表达方式:bool 和 BOOL;其次,你会发现大家习惯用 YES 和 NO ,尽管写 true 和 false 也是可以的。

传统的 C 语言里面是没有布尔这个数据类型的。那个时候用的数据类型叫做「标记字符」,再然后才把它叫做 BOOL 。实际上这是一个八位数的值,但八位就够用了。直到 C 语言更新到 C99 的版本,才正式把 bool 这个称呼公布出来,而 64 位的iOS 系统里面的 BOOL,其实是 bool 的同名数据类型。你会发现这两者都是可以用的,比如说苹果的 C 框架里面的 Core Graphics,用的就是 bool,但是在 Objective-C 的 UIKit 框架里面就习惯使用 BOOL。

我不是很介意你到底是写 YES 还是 NO, true 还是 false, BOOL 还是 bool,这不重要。重要的是,当你在接手别人的项目的时候,请你和他使用同样的代码习惯,那如果你是开始一个全新的项目,使用 BOOL, YES 和 NO 就好啦。

results matching ""

    No results matching ""