gpt4 book ai didi

generics - 在 Rust 中,我需要什么特征来比较泛型和整数

转载 作者:行者123 更新时间:2023-12-03 11:41:26 24 4
gpt4 key购买 nike

如何将计算结果与泛型进行比较?
T 总是一些无符号整数类型(u64、u32 等),所以片段中的应该可以工作,但是我怎样才能说服 rust 编译器呢?

fn reproduction<T>(val: T) -> bool
where
T: PartialOrd
{
let var_of_type_integer = 7; // actually the result of a calculation
if val < var_of_type_integer { // ERROR: expected type parameter, found integer
return true;
}
false
}

最佳答案

PartialOrd trait 可以接受一个泛型参数来指定它可以与什么类型进行比较:

pub trait PartialOrd<Rhs = Self>: PartialEq<Rhs>
where
Rhs: ?Sized,
{
// ...
}

所以编译:

pub fn reproduction<T>(val: T) -> bool
where
T: PartialOrd<i32>,
{
let var_of_type_integer = 7;
if val < var_of_type_integer {
return true;
}
false
}

如果当然只有故事的一半,则能够编译。当您或用户实际调用具有某种具体类型的值的函数时,该类型必须满足指定的 PartialOrd<i32>特质绑定(bind)。

关于generics - 在 Rust 中,我需要什么特征来比较泛型和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com