In Swift, !
significa scartare un opzionale (valore possibile).Perché il println! funzione utilizzare un punto esclamativo in Rust?
16
A
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)
}
Problemi correlati
- 1. Come abbinare il punto esclamativo (!) In PHP?
- 2. Punto esclamativo in HTML Email
- 3. forza angolare un punto esclamativo indesiderato url
- 4. Importazioni ES6: cosa significa il punto esclamativo?
- 5. Cosa fa un singolo punto esclamativo in YAML?
- 6. Punto esclamativo arancione su smartgit
- 7. Punto esclamativo su file .xlsm
- 8. Punto esclamativo mancante in facebook Nome API
- 9. Curl - Punto esclamativo in Aut utente/password
- 10. Punto esclamativo rosso in Eclipse con mercurial
- 11. Akka in Scala, punto esclamativo e punto interrogativo
- 12. Punto esclamativo a caso in PHP HTML-Email
- 13. Cosa fa !! (doppio punto esclamativo) significa?
- 14. Perché il compilatore Rust genera enormi eseguibili?
- 15. Perché il punto esclamativo in un altro post di StackOverflow che coinvolge il numero di telefono REGEX?
- 16. Studio Android mostra un punto esclamativo rosso all'attributo estraibile
- 17. Convenzione di denominazione: perché l'array # delete non ha un punto esclamativo alla fine?
- 18. Java println (charArray + String) vs println (charArray)
- 19. JS doppio punto esclamativo: c'è qualche buona ragione per usarlo?
- 20. Vim cosa è l'uso del punto esclamativo al comando sostituto
- 21. In Rust come si passa una funzione come parametro?
- 22. #! hashtag e punto esclamativo nei collegamenti come cartella?
- 23. Perché è necessario utilizzare il punto e virgola prima di definire una funzione?
- 24. Come passare un array a una funzione in Rust e modificarne il contenuto?
- 25. Come passare una funzione come argomento di Rust
- 26. È possibile richiamare un println in Java?
- 27. Perché Twitter utilizza un hash e un punto esclamativo negli URL e come riscrivono gli URL di ricerca?
- 28. Come utilizzare Fn tratti/chiusure nelle firme in Rust
- 29. Cosa significa punto esclamativo in HTML in costrutti come DOCTYPE e commenti?
- 30. Perché Rust non ha unioni?
perfetto. Grazie! – masters3d