Подтвердить что ты не робот

Почему Objective-C использует YES и NO вместо 1 и 0?

Есть ли какая-либо техническая причина, по которой Objective-C использует YES и NO вместо 1 и 0, или просто сделать ее более читаемой?

4b9b3361

Ответ 1

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

Звучит лучше IMHO, тогда...

[button setAttr:TRUE];

Ответ 2

Сделать его более удобочитаемым является технической причиной.

Ответ 3

C (на котором основан Objective-C) не было булевского типа до C99.

Objective-C был создан в 80-х годах и определил его собственный булевский тип.

Ответ 4

Потому что программист означает да и нет, а не 1 и 0.

Ответ 5

По той же причине большинство языков используют true и false... Вы можете использовать 1 и 0, если хотите, так же, как и любой другой язык.

В самом деле, если вы думаете об этом, мы говорим о:

#define YES 1
#define NO  0

Это просто приятно читать.

Ответ 6

Это просто синтаксис, нет технической причины для этого. Они просто используют YES/NO для своего BOOL вместо true/false, как это делает С++.

Ответ 7

Это то же самое, что и true/false..

Не спрашивайте меня, почему они изобрели колесо и изменили имена.

Предполагаю, что разработчик языка подумал, что было бы здорово быть другим... (Да, я знаю, что я получу спины от поклонников).