¿Hay alguna razón técnica por la cual Objective-C usa SÍ y NO en lugar de 1 y 0, o es simplemente para hacerlo más legible?¿Por qué Objective-C usa SÍ y NO en lugar de 1 y 0?
Respuesta
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
(Como referencia)
[button setAttr:YES];
Suena bonito, entonces en mi humilde opinión ...
[button setAttr:TRUE];
Haciéndolo más legible es una razón técnica.
Es solo sintaxis, no hay ninguna razón técnica para ello. Simplemente usan SÍ/NO para su BOOL en lugar de verdadero/falso como lo hace C++.
Vota abajo porque esto no responde la pregunta. –
Por la misma razón la mayoría de idiomas utilizan true
y false
... Se puede utilizar 1 y 0 si se quiere, igual que cualquiera de los otros idiomas.
Realmente, si se piensa en ello, estamos hablando de:
#define YES 1
#define NO 0
Es simplemente más agradable de leer.
Es lo mismo como verdadero/falso ..
No me preguntes por qué se reinventaron la rueda y se cambian los nombres.
Mi conjetura es pesonal, que el diseñador del lenguaje pensó que estaría bien ser diferente ... (Sí, sé que voy a conseguir downvotes de los fan-boys) ..
No creo que hayan reinventado la rueda, sino que simplemente añaden claridad. Y lo hace, solo eso. – Rev316
No es tanto que "reinventaron" la rueda. Precedieron la implementación de booleanos en C.Al no tener nada que copiar, lo implementaron a su gusto. –
La rueda de Apple: http://www.youtube.com/watch?v=9BnLbv6QYcA –
C (en el que el objetivo -C se basa) no tenía un tipo booleano hasta C99.
Objective-C se creó en los años 80 y definió su propio tipo booleano.
'Objective-C' es _so 80 chic_. –
Debido a que el programador significasí y sin, no y .
- 1. C99 - ¿por qué son falsos y verdaderos definidos como 0 y 1 y no como ((bool) 0) y ((bool) 1)?
- 2. ¿Por qué el resultado 2 + 1 y 0 es 0?
- 3. ¿Qué significan -1, 1 y 0 en este código Javascript?
- 4. ¿Qué significa! 1 y! 0 en Javascript?
- 5. ¿Por qué -1 >> 1 es -1? ¡Y 1 >> 1 es 0!
- 6. ¿Por qué 0 && 1 es 1 mientras que 1 && 0 es 0 en ruby?
- 7. ¿Por qué ~ 0 es -1?
- 8. ¿Por qué los números de inodo comienzan en 1 y no en 0?
- 9. 0 en [1, 2] == cierto, ¿por qué?
- 10. Serialize Boolean a "1" y "0" en lugar de "verdadero" y "falso"
- 11. ¿Por qué los índices vectoriales en R comienzan con 1, en lugar de 0?
- 12. Compara dos números y devuelve -1, 0 o 1
- 13. ¿Para qué se usan $ (0) y $ (1) en jQuery?
- 14. XML Serialize booleano como 0 y 1
- 15. En csh, ¿por qué 4 - 3 + 1 == 0?
- 16. ¿Por qué "Sí" es un valor de -1 en la base de datos de MS Access?
- 17. ¿Por qué SortedList y List usan array y por qué LinkedList no se usa mucho?
- 18. XNA - ¿Por qué usa Vector2 y no Point?
- 19. Mostrar Sí y No botones en lugar de Aceptar y Cancelar en el cuadro ¿Confirmar?
- 20. sizeof estructura vacía es 0 en C y 1 en C++ ¿por qué?
- 21. ¿por qué usar WHERE 1 = 0 instrucción en SQL?
- 22. ¿Por qué la gente usa i = i + 1 en lugar de i ++?
- 23. ¿por qué usa el movl en lugar de push?
- 24. C++ bool devuelve 0 1 en lugar de verdadero falso
- 25. Convertir 0 a 1 y viceversa
- 26. ¿Por qué Git usa SHA-1 como números de versión?
- 27. ¿Por qué OpenGL usa grados en lugar de radianes?
- 28. io_service, ¿por qué y cómo se usa?
- 29. Javascript VERDADERO y "verdadero" ¿por qué alguien usa cadena en lugar de booleano?
- 30. Configurar Hibernate (usando JPA) para almacenar Y/N para tipo Boolean en lugar de 0/1
Vota abajo porque esto no responde la pregunta. A lo sumo, este es un comentario. –