English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Las declaraciones condicionales en el lenguaje Rust tienen este formato:
fn main() { let number = 3; if number < 5 { println!("La condición es true"); } else { println!("La condición es false"); } }
En el programa mencionado anteriormente, hay una declaración condicional if, esta sintaxis es muy común en muchos otros lenguajes, pero también hay algunas diferencias: primero, la expresión condicional number < 5 No es necesario usar paréntesis para incluir (no es necesario, no está prohibido);pero en Rust no existe la regla de un solo estatuto sin {} en un bloque, no se permite usar una única instrucción en lugar de un bloque. A pesar de esto, Rust aún admite el else tradicional-Gramática de if:
fn main() { let a = 12; let b; if a > 0 { b = 1; } else if a < 0 { b = -1; } else { b = 0; } println!("b es {}", b); }
Resultado de la ejecución:
b es 1
Las expresiones condicionales en Rust deben ser del tipo bool, por ejemplo, el siguiente programa es incorrecto:
fn main() { let number = 3; if number { // Error, se esperaba `bool`, se encontró integer308) println!("Sí"); } }
A pesar de que C/C++ En el lenguaje se utilizan enteros para expresiones condicionales, 0 es falso, pero esta regla está prohibida en muchos lenguajes que prestan atención a la seguridad del código.
Conectando con la asociación de la expresión de cuerpo de función aprendida en el capítulo anterior:
if <condición> { bloque 1 } else { bloque 2 }
En la sintaxis de este tipo de { bloque 1 } y { bloque 2 } ¿Puede ser una expresión de cuerpo de función?
La respuesta es afirmativa! Es decir, en Rust podemos usar if-La estructura else se implementa de manera similar a la expresión condicional ternaria (A ? B : C) El efecto es:
fn main() { let a = 3; let number = if a > 0 { 1 } else { -1 }; println!("number es {}", number); }
Resultado de la ejecución:
number es 1
Atención¡Las expresiones de cuerpo de dos funciones deben ser del mismo tipo! Y debe haber un else seguido de un bloque de expresiones.