2016-03-15 2 views

Antwort

11

Derzeit die gesamte generische Geschichte mit primitiven numerischen Typen in Rust ist in der offiziellen num Kiste verfügbar. Diese Kiste enthält unter anderem eine Anzahl von Merkmalen, die für verschiedene primitive numerische Typen implementiert sind, und insbesondere gibt es Float, die eine Gleitkommazahl darstellt.

Float Merkmal bietet eine Menge von Methoden, die auf Gleitkommazahlen spezifisch sind, sondern erstreckt sich auch Num und NumCast Züge, die es erlauben, numerische Operationen auszuführen und generische Typen von beliebigen primitiven Zahlen zu erhalten. Mit Float könnte Ihr Code wie folgt aussehen:

use num::{Float, NumCast}; 

fn multiply<F: Float>(n: F) -> F { 
    n * NumCast::from(2).unwrap() 
} 

NumCast::from() kehrt Option, weil nicht alle numerischen Abgüsse Sinn machen, aber in diesem speziellen Fall ist es garantiert zu arbeiten, also habe ich unwrap().