usan - ¿Por qué la imprenta? Función de utilizar un signo de exclamación en Rust?
signos de interrogacion y exclamacion para niños (1)
println! No es una función, es una macro . Uso de macros ! Para distinguirlos de las llamadas de métodos normales. La documentación contiene más información.
Rust utiliza el tipo de Option para denotar datos opcionales. Tiene un método de unwrap .
Rust 1.13 agregó el operador de signo de interrogación ? Como un análogo del try! macro (propuesto originalmente a través de RFC 243 ).
Una excelente explicación del operador de signo de interrogación se encuentra en The Rust Programming Language .
fn foo() -> Result<i32, Error> {
Ok(4)
}
fn bar() -> Result<i32, Error> {
let a = foo()?;
Ok(a + 4)
}
El operador de signo de interrogación también se extiende a Option , por lo que puede ver que se usa para desenvolver un valor o devolver None de la función. Esto es diferente de solo desempaquetar ya que el programa no entrará en pánico:
fn foo() -> Option<i32> {
None
}
fn bar() -> Option<i32> {
let a = foo()?;
Some(a + 4)
}
En Swift ! significa desenvolver un opcional (valor posible).