Rust 仅为特定关联类型扩展trait
我希望扩展Rust 仅为特定关联类型扩展trait,rust,Rust,我希望扩展迭代器特性,但仅针对特定的关联类型类型Item=f64: trait迭代器text:Iterator{ fn最小最大值(多个自)->(f64,f64) 其中Self::Item:f64/如果您只想为迭代器而不是f64定义您的特征,您可以这样表示: trait IteratorExt: Iterator<Item = f64> { fn minmax(&mut self) -> (f64, f64) { let mut min = f64
迭代器
特性,但仅针对特定的关联类型类型Item=f64代码>:
trait迭代器text:Iterator{
fn最小最大值(多个自)->(f64,f64)
其中Self::Item:f64/如果您只想为迭代器
而不是f64
定义您的特征,您可以这样表示:
trait IteratorExt: Iterator<Item = f64> {
fn minmax(&mut self) -> (f64, f64) {
let mut min = f64::NAN;
let mut max = f64::NAN;
for value in self {
min = f64::min(min, value);
max = f64::max(max, value);
}
(min, max)
}
}
就是这样。我不知道指定关联类型的语法。谢谢!
trait IteratorExt: Iterator {
fn minmax(&mut self) -> (f64, f64)
where
Self: Iterator<Item = f64>,
{
let mut min = f64::NAN;
let mut max = f64::NAN;
for value in self {
min = f64::min(min, value);
max = f64::max(max, value);
}
(min, max)
}
}