Bool
bool es el tipo primitivo de Move para valores booleanos true y false.
Literales
Sección titulada «Literales»Los literales para bool son true o false.
Operaciones
Sección titulada «Operaciones»Lógicas
Sección titulada «Lógicas»bool soporta tres operaciones lógicas:
| Sintaxis | Descripción | Expresión Equivalente | 
|---|---|---|
| && | y lógico con cortocircuito | p && qes equivalente aif (p) q else false | 
| || | o lógico con cortocircuito | p || qes equivalente aif (p) true else q | 
| ! | negación lógica | !pes equivalente aif (p) false else true | 
Flujo de Control
Sección titulada «Flujo de Control»Los valores bool se usan en varias construcciones de flujo de control de Move:
Propiedad
Sección titulada «Propiedad»Al igual que con los otros valores escalares integrados en el lenguaje, los valores booleanos son implícitamente copiables, lo que significa que se pueden copiar sin una instrucción explícita como copy.
Ejemplos
Sección titulada «Ejemplos»Operaciones Básicas
Sección titulada «Operaciones Básicas»fun boolean_examples() {    let x: bool = true;    let y: bool = false;
    // Operaciones lógicas    let and_result = x && y;     // false    let or_result = x || y;      // true    let not_result = !x;         // false}En Condicionales
Sección titulada «En Condicionales»fun conditional_example(condition: bool) {    if (condition) {        // hacer algo si es verdadero    } else {        // hacer algo si es falso    }}Con Assert
Sección titulada «Con Assert»fun assert_example(value: u64) {    assert!(value > 0, 1); // Aborta con código 1 si value no es mayor que 0}Cortocircuito
Sección titulada «Cortocircuito»fun short_circuit_examples(x: u64) {    // El cortocircuito previene la evaluación de la segunda expresión si la primera es suficiente    let result1 = (x > 0) && (100 / x > 5); // Seguro: no divide por cero si x es 0    let result2 = (x == 0) || (100 / x > 5); // Seguro: no divide por cero si x es 0}Características Importantes
Sección titulada «Características Importantes»- 
Cortocircuito: Los operadores &&y||usan evaluación de cortocircuito, lo que significa que el segundo operando solo se evalúa si es necesario.
- 
Sin conversión automática: Move no convierte automáticamente otros tipos a bool. Debes usar comparaciones explícitas:
// ✗ Incorrectoif (x) { ... }  // Error: x debe ser bool
// ✓ Correctoif (x != 0) { ... }  // Compara explícitamente x con 0- 
Copiable implícitamente: Los valores boolse pueden copiar libremente sin usar la palabra clavecopy.
- 
Inmutable: Los valores boolson inmutables una vez creados, pero las variables que los contienen pueden ser reasignadas.