【发布时间】:2026-01-02 03:40:01
【问题描述】:
Objective-C 使用 YES 和 NO 而不是 1 和 0 是否有任何技术原因,或者仅仅是为了使其更具可读性?
【问题讨论】:
标签: objective-c
Objective-C 使用 YES 和 NO 而不是 1 和 0 是否有任何技术原因,或者仅仅是为了使其更具可读性?
【问题讨论】:
标签: objective-c
使其更具可读性是技术原因。
【讨论】:
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 年代,并定义了它自己的布尔类型。
【讨论】:
Objective-C 是 80 年代的时尚。
因为程序员意味着 yes和no,而不是1和0 .
【讨论】:
与大多数语言使用true和false的原因相同...您可以根据需要使用1和0,与任何其他语言相同。
真的,如果您考虑一下,我们正在谈论:
#define YES 1
#define NO 0
读起来更舒服。
【讨论】:
bash shell中长大..@ 987654325@... “意味着好”,aka YES!... á la exit 0... 每次我使用 C boolean 我必须强迫我的思想接受这个自相矛盾的现实!
这只是语法,没有技术原因。他们只是使用 YES/NO 作为 BOOL,而不是像 c++ 那样使用 true/false。
【讨论】: