Czy istnieje jakiś techniczny powód, dla którego Objective-C używa TAK i NIE zamiast 1 i 0, czy może po prostu jest to bardziej czytelne?Dlaczego Objective-C używa YES i NO zamiast 1 i 0?
Odpowiedz
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
(Dla odniesienia)
[button setAttr:YES];
Brzmi ładniejszy IMHO potem ...
[button setAttr:TRUE];
Uczynienie go bardziej czytelnym jest z przyczyn technicznych.
To tylko składnia, nie ma z tego technicznego powodu. Po prostu używają TAK/NIE dla swoich BOOL zamiast prawdziwych/fałszywych jak C++.
Uprzejmie głosowano, ponieważ nie odpowiada na pytanie. –
Z tego samego powodu większość języki używać true
i false
... Można używać 1 i 0, jeśli chcesz, tak samo jak każdy z tych języków.
Naprawdę, jeśli myślisz o tym, że mówimy o:
#define YES 1
#define NO 0
To po prostu ładniejszy czytać.
To samo jak prawda/fałsz ..
nie pytaj mnie dlaczego oni odkrywać koła i zmienił nazwiska.
Moja pesonal Domyślam się, że projektant język pomyślałem, że byłoby fajnie być inaczej ... (Tak, wiem, że będę się downvotes od wentylatora chłopców) ..
Nie sądzę, że wymyślili nowe koło, ale po prostu dodają przejrzystości. I tak, właśnie to. – Rev316
To nie tyle, że "wymyślili" koło. Poprzedziły one wykonanie booleans w C.Nie mając nic do skopiowania, zaimplementowali go tak, jak chcieli. –
Koło Apple: http://www.youtube.com/watch?v=9BnLbv6QYcA –
C (na którym Cel -C oparte) nie ma typu boolowskiego do C99.
Objective-C został stworzony w latach 80. i zdefiniował własny typ boolowski.
'Objective-C' to _to 80-szy styl. –
Ponieważ programista oznaczatak i nr, nie i .
- 1. Dlaczego + i * oceniają odpowiednio 0 i 1?
- 2. Dlaczego 0 i& 1 to 1, a 1 i& 0 to 0 w rubinach?
- 3. PHP: Pokaż okno dialogowe potwierdzenia Yes/no
- 4. Dlaczego SELECT 0, ... zamiast SELECT
- 5. UIScrollView - (bounce = NO) wydaje się przesłonić (pagingEnabled = YES)
- 6. Dlaczego wyrażenie (0 == 0 & 1 == 1) jest oceniane jako Fałsz?
- 7. Mantle konwertuje automatycznie 0 i 1 na BOOL?
- 8. Jak porównać @NO i @YES z elegancją i bez ryzyka fałszywych trafień/negatywów?
- 9. Convert.ToBoolean i Boolean.Parse nie akceptują 0 i 1
- 10. MySQL LEFT JOIN i SUM i pokazać 0 zamiast NULL
- 11. Swift Boolean Literals (odpowiednik Obj-C @YES @ NO)
- 12. Dlaczego JVM używa gigantycznego int [] wszystkich 0?
- 13. Dlaczego 0 === -0 jest prawdziwe, ale 1/0 === 1/-0 jest fałszem?
- 14. Porównaj dwie liczby i zwróć -1, 0 lub 1
- 15. Jak najlepiej ograniczyć wyniki String.compareTo() do -1, 0 i 1?
- 16. Dlaczego numpy.r_ zamiast nawiasów używa nawiasów?
- 17. Dlaczego i = i + 1 jest szybsze niż i ++?
- 18. Autoboxing: Mogę napisać: Integer i = 0; zamiast: Integer i = new Integer (0);
- 19. Dlaczego doktryna używa GDZIE IN zamiast LIMITU?
- 20. Dlaczego ember-cli używa rozszerzenia zamiast tworzyć?
- 21. Dlaczego Collections.sort używa sortowania scalonego zamiast quicksort?
- 22. Dlaczego Windows GDI używa formatu RGBA zamiast "COLORREF" zamiast BGRA?
- 23. Dlaczego "$ temp = 0; echo ~ $ temp; "print -1?
- 24. inkrementacja zmiennej w bash `i = 0; ls> $ ((++ i)); echo i = $ i; `Dlaczego wynik jest i = 0
- 25. Dlaczego Google używa wbudowanego JavaScript i CSS?
- 26. Dlaczego DateTime do czasu Unix używa podwójne zamiast liczby całkowitej?
- 27. Zamiana 1 z 0 i 0 z 1 w sposób Pythonic
- 28. Co to są 0 $ i 1 $ w skrypcie awk?
- 29. Dlaczego drzewo AVL w Map of OCaml używa współczynnika bilansowego (height diff) 2 zamiast 1?
- 30. Co oznacza! 1 i! 0 w języku JavaScript?
Wcześniej przegłosowano, ponieważ nie odpowiada na pytanie. Co najwyżej jest to komentarz. –