Objective-C使用YES和NO代替1和0是否有任何技术原因,或者只是为了使其更具可读性?
答案 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)
大多数语言使用true
和false
的原因相同...如果您愿意,可以使用1和0,与其他任何语言相同。
真的,如果你考虑一下,我们谈的是:
#define YES 1
#define NO 0
阅读起来更好。
答案 5 :(得分:2)
这只是语法,没有技术原因。他们只是对他们的BOOL使用YES / NO而不是像c ++那样使用true / false。
答案 6 :(得分:-7)
它与真/假相同..
不要问我为什么他们重新发明轮子并更改名称。
我的个人猜测是,语言设计师认为与众不同会很酷......(是的,我知道我会从粉丝男孩那里得到的回报)..