Есть ли какая-либо техническая причина, по которой Objective-C использует YES и NO вместо 1 и 0, или просто сделать ее более читаемой?
Почему Objective-C использует YES и NO вместо 1 и 0?
Ответ 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..
Не спрашивайте меня, почему они изобрели колесо и изменили имена.
Предполагаю, что разработчик языка подумал, что было бы здорово быть другим... (Да, я знаю, что я получу спины от поклонников).