Objective-C使用YES和NO代替1和0是否有任何技术原因,或者仅仅是为了使其更具可读性?
使其更具可读性是一个技术原因.
typedef signed char BOOL; // BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" // even if -funsigned-char is used. #define OBJC_BOOL_DEFINED #define YES (BOOL)1 #define NO (BOOL)0
(以供参考)
[button setAttr:YES];
听起来更好恕我直言......
[button setAttr:TRUE];
C(Objective-C所基于的)在C99之前没有布尔类型.
Objective-C是在80年代创建的,并定义了它自己的布尔类型.
因为程序员意味着 是和否,而不是1和0.
同样的原因,大多数语言使用true
和false
...如果你喜欢,与任何其它语言的您可以使用1和0.
真的,如果你考虑一下,我们谈的是:
#define YES 1 #define NO 0
它的阅读效果更好.