2011-04-05 6 views

Respuesta

25

Un booleano true es, bueno, un valor booleano. Úselo siempre que quiera expresar que se cumple una cierta condición binaria.

El entero literal 1 es un número. Úselo, siempre que esté contando algo.

No utilice enteros para booleanos y viceversa. Ellos son diferentes.

Considere la posibilidad de una variable int isEnabled. Por supuesto, puedo suponer que 0 y 1 pueden ser los únicos valores previstos para esta variable. Pero en lo que respecta al lenguaje, nada me impide asignar 4247891. Sin embargo, el uso de un valor booleano restringe los valores válidos a true y false. Esto no deja lugar para la especulación.

(C++ int de Bools y son algo convertibles, pero es generalmente mal visto)

+3

Boolean es también mucho más pequeño en términos de memoria. –

+2

Solo para agregar una referencia a lo que Justin Satyr está diciendo: Los enteros generalmente son 4 bytes (32 bits) mientras que los de Boolean son de 1 byte (8 bits). Todos dependen de la plataforma, pero para todas las plataformas principales sé que esto es correcto. (Sí, un booleano debería ser, en un mundo perfecto, de 1 bit, sin embargo, es imposible hacer referencia solo a un bit en la memoria) –

+2

@Justin Satyr Un lote más pequeño es std :: vector en comparación con std :: vector en otros casos debes tener en cuenta la alineación. – Begemoth

10

recomiendo el uso de true si su tipo es lógicamente un valor lógico. Esto será mucho más claro en términos de intención, lo que hace que su código sea más fácil de mantener.

3

¿Para qué? Use un booleano para un booleano; Usa un número entero cuando estás contando algo.

Cuestiones relacionadas