C'è qualche motivo tecnico per cui Objective-C usa SÌ e NO invece di 1 e 0, o è semplicemente per renderlo più leggibile?Perché Objective-C usa YES e NO invece di 1 e 0?
risposta
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
(Per riferimento)
[button setAttr:YES];
suona meglio IMHO poi ...
[button setAttr:TRUE];
Rendendolo più leggibile è un motivo tecnico.
È solo sintassi, non c'è motivo tecnico. Usano solo YES/NO per il loro BOOL invece di vero/falso come fa C++.
Abbassato perché non risponde alla domanda. –
La stessa ragione per la maggior parte delle linguaggi utilizzano true
e false
... È possibile utilizzare 1 e 0, se vi piace, uguale a una di queste altre lingue.
Davvero, se ci pensate bene, stiamo parlando di:
#define YES 1
#define NO 0
E 'semplicemente bello da leggere.
E 'lo stesso come vero/falso ..
non chiedetemi perché hanno reinventato la ruota e cambiato i nomi.
mio pesonal ipotesi è che il progettista del linguaggio pensato che sarebbe stato bello essere diverso ... (Sì, lo so mi metterò downvotes dal ventilatore-ragazzi) ..
Non penso che abbiano reinventato la ruota, ma aggiungono solo chiarezza. E lo fa, proprio quello. – Rev316
Non è tanto che hanno "reinventato" la ruota. Hanno preceduto l'implementazione dei booleani in C.Non avendo nulla da copiare, lo hanno implementato come hanno scelto. –
La ruota della mela: http://www.youtube.com/watch?v=9BnLbv6QYcA –
C (su cui obiettivo -C è basato) non ha avuto un tipo booleano fino a C99.
Objective-C è stato creato negli anni '80 e ha definito il proprio tipo booleano.
'Objective-C' è _so 80's chic_. –
perché il programmatore significasì e non, non e .
- 1. Qual è la differenza tra @ YES/@ NO e YES/NO?
- 2. È! 0 e! 1 meglio di 1 e 0?
- 3. Perché il risultato 2 + 1 e 0 è 0?
- 4. Perché + e * valutano rispettivamente a 0 e a 1?
- 5. UIScrollView - (rimbalzi = NO) sembra sovrascrivere (pagingEnabled = YES)
- 6. Perché ~ 0 è -1?
- 7. Indicizzazione stringa - Perché S [0] [0] funziona e S [1] [1] fallisce?
- 8. Perché scegliere 0, ... invece di SELEZIONE
- 9. Differenza tra NSLog e printf per ObjectiveC
- 10. In csh, perché 4 - 3 + 1 == 0?
- 11. Haskell di lista 0 e 1.
- 12. perché usa il movl invece di premere?
- 13. Come ottenere casuale 0 e 1 numeri
- 14. Perché Perl pensa che `1 e 0` sia vero?
- 15. Perché mmap() usa MAP_FAILED invece di NULL?
- 16. Perché 0 && 1 è 1 mentre 1 && 0 è 0 in ruby?
- 17. Perché memo.Lines usa TStrings invece di TStringList?
- 18. Aiuto con codice GCC e ObjectiveC e Cygwin
- 19. Come confrontare @NO e @YES con eleganza e senza rischio di falsi positivi/negativi?
- 20. Mantle convertire 0 e 1 in BOOL automaticamente?
- 21. Perché UnderscoreJS usa toString.call() invece di typeof?
- 22. Convert.ToBoolean e Boolean.Parse non accettano 0 e 1
- 23. Perché 0 === -0 è vero, ma 1/0 === 1/-0 è falso?
- 24. Perché 0 == [], ma 0 == false e! [] == false?
- 25. Normalizzazione CGRect tra 0 e 1
- 26. Convertire 0 a 1 e viceversa
- 27. Come convertire "0" e "1" in falso e vero
- 28. Aggiungi xml-stylesheet e ottieni standalone = yes
- 29. Perché l'idioma di ricorsione in Haskell "'n + 1' e 'n'" e non "'n' e 'n-1'"?
- 30. Perché Git usa SHA-1 come numeri di versione?
Abbassato perché non risponde alla domanda. Al massimo, questo è un commento. –