为什么Objective-C使用YES和NO而不是1和0?

时间:2009-03-27 18:16:41

标签: objective-c

Objective-C使用YES和NO代替1和0是否有任何技术原因,或者只是为了使其更具可读性?

7 个答案:

答案 0 :(得分:53)

使其更具可读性技术原因。

答案 1 :(得分:26)

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];

答案 2 :(得分:23)

C(Objective-C所基于的)在C99之前没有布尔类型。

Objective-C是在80年代创建的,并定义了它自己的布尔类型。

答案 3 :(得分:20)

因为程序员意味着 没有,而不是 1 0

答案 4 :(得分:8)

大多数语言使用truefalse的原因相同...如果您愿意,可以使用1和0,与其他任何语言相同。

真的,如果你考虑一下,我们谈的是:

#define YES 1
#define NO  0

阅读起来更好。

答案 5 :(得分:2)

这只是语法,没有技术原因。他们只是对他们的BOOL使用YES / NO而不是像c ++那样使用true / false。

答案 6 :(得分:-7)

它与真/假相同..

不要问我为什么他们重​​新发明轮子并更改名称。

我的个人猜测是,语言设计师认为与众不同会很酷......(是的,我知道我会从粉丝男孩那里得到的回报)..