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).