Rust中数字功能的特性

Hos*_*our 7 numeric traits generic-programming rust

是否有任何特征指定一些数字功能?我想用它来绑定泛型类型,就像这个假设HasSQRT:

fn some_generic_function<T>(input: &T)
    where T: HasSQRT
{
    // ...
    input.sqrt()
    // ... 
}
Run Code Online (Sandbox Code Playgroud)

evi*_*one 9

您可以使用NUMNUM-性状包装箱及绑定了您的泛型函数类型num::Float,num::Integer或任何相关的特质:

extern crate num;

use num::Float;

fn main() {
    let f1: f32 = 2.0;
    let f2: f64 = 3.0;
    let i1: i32 = 3;

    println!("{:?}", sqrt(f1));
    println!("{:?}", sqrt(f2));
    println!("{:?}", sqrt(i1)); // error
}

fn sqrt<T: Float>(input: T) -> T {
    input.sqrt()
}
Run Code Online (Sandbox Code Playgroud)

  • @HosseinNoroozpour使用依赖项.Rust与许多其他语言不同,因为包管理是内置的,并且得到了强烈的支持.规范示例是随机数生成,它在包中而不是标准库中提供. (16认同)
  • 我不想尽可能地为我的项目添加依赖项,还有其他方法吗? (2认同)
  • @Kroltan我来自C ++背景,在那里添加每个依赖项都是一个可怕的决定。我只能猜测应该绑定到C库的那些库是我应该避免添加的库,对吗? (2认同)