rust - 是否有任何特征可以指定数字功能?

标签 rust numeric generic-programming traits

我想使用一个特征来绑定(bind)一个泛型类型,就像这个假设的 HasSQRT :

fn some_generic_function<T>(input: &T)
where
    T: HasSQRT,
{
    // ...
    input.sqrt()
    // ...
}

最佳答案

您可以使用numnum-traits num::Float 绑定(bind)你的泛型函数类型, num::Integer 或任何相关特征:

use num::Float; // 0.2.1

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()
}

关于rust - 是否有任何特征可以指定数字功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63854409/

相关文章:

java - Java 中泛型的深拷贝

intellij-idea - "a bin target must be available for ' cargo 运行 '"

.net - Sql数据类型numeric有什么优点?

c++ - 模板元编程——g++ 吃掉了它,clang 没有

c - 为了实时数值积分的目的,如何测量 c 中的时间?

r - 是否有 R 函数仅从具有许多 NA 值的逗号分隔字符串中提取数字以创建仅包含数字的列?

haskell - 是否可以通用地推导出递归原理?

casting - 克隆一个 Rc<RefCell<MyType> 特征对象并转换它

rust - 如何将特征作为结构的自有字段?

exception - 如何使用 ?并捕获使用rust ?