2015-04-13 17 views

risposta

29

println! non è una funzione, è una macro. Le macro usano ! per distinguerle dalle normali chiamate di metodo. The documentation contiene ulteriori informazioni.


Rust utilizza il tipo Option per indicare i dati opzionali. Ha un metodo unwrap.

Rust 1.13 ha aggiunto l'operatore punto interrogativo ? come un analogo della macro try! (originariamente proposto tramite RFC 243).

Un'eccellente spiegazione dell'operatore del punto interrogativo è The Rust Programming Language.

fn foo() -> Result<i32, Error> { 
    Ok(4) 
} 

fn bar() -> Result<i32, Error> { 
    let a = foo()?; 
    Ok(a + 4) 
} 

Il punto interrogativo operatore anche extends to Option, quindi è possibile vedere usata per aprire un valore o tornare None dalla funzione. Questo è diverso dal semplice scartare in quanto il programma non andrà nel panico:

fn foo() -> Option<i32> { 
    None 
} 

fn bar() -> Option<i32> { 
    let a = foo()?; 
    Some(a + 4) 
} 
+1

perfetto. Grazie! – masters3d

Problemi correlati