Attualmente tutta la storia generica con tipi numerici primitivi in Rust è disponibile nella cassa ufficiale num
. Questa cassa contiene, tra le altre cose, una serie di tratti che sono implementati per vari tipi di numeri primitivi, e in particolare c'è Float
che rappresenta un numero in virgola mobile.
Float
caratteristica fornisce un sacco di metodi che sono specifici per i numeri in virgola mobile, ma si estende anche Num
e NumCast
tratti che permettono di eseguire operazioni numeriche e ottenere tipi generici di numeri primitivi arbitrari. Con Float
il codice potrebbe essere la seguente:
use num::{Float, NumCast};
fn multiply<F: Float>(n: F) -> F {
n * NumCast::from(2).unwrap()
}
NumCast::from()
rendimenti Option
perché non tutti i calchi numerici hanno senso, ma in questo caso particolare è garantito il funzionamento, quindi ho utilizzato unwrap()
.
fonte
2016-03-15 14:54:48