7
我期待編寫能夠接受任何浮點數據,類似以下形式的函數:我怎樣才能使防鏽功能接受任何浮動類型作爲參數
fn multiply<F: Float>(floating_point_number: F){
floating_point_number * 2
}
但我可以」 t在文檔中找到它的語法,或者只有浮點數才具有的特徵
我期待編寫能夠接受任何浮點數據,類似以下形式的函數:我怎樣才能使防鏽功能接受任何浮動類型作爲參數
fn multiply<F: Float>(floating_point_number: F){
floating_point_number * 2
}
但我可以」 t在文檔中找到它的語法,或者只有浮點數才具有的特徵
當前Rust中的原始數字類型的所有通用故事均可在官方的num
箱中找到。除了一切之外,這個箱子還包含許多用於各種基本數字類型的特徵,特別是代表浮點數的Float
。
Float
性狀提供了大量的特異於浮點數的方法,但它也延伸Num
和NumCast
的特徵,其允許進行數字運算,將獲得的通用類型的從任意的原始號碼。隨着Float
你的代碼看起來是這樣的:
use num::{Float, NumCast};
fn multiply<F: Float>(n: F) -> F {
n * NumCast::from(2).unwrap()
}
NumCast::from()
回報Option
因爲不是所有的數字類型轉換是有意義的,但在這個特殊的情況下,它是保證工作,所以我用unwrap()
。