gpt4 book ai didi

rust - 如何从主泛型推论出子泛型?

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

是否可以更改此代码以仅指定主要类型:impl Writer<MyTable>,并让Rust自动推断出HR参数?

trait Table<H, R> {
fn rows(&self) -> &Vec<R>;
fn header(&self) -> &H;
}

// MyTable implements Table

trait Writer<H, R, T: Table<H, R>> {}

impl Writer<MyTableHeader, MyTableRow, MyTable> for WriterImpl {}

最佳答案

解决问题的一种方法是将HR模板参数作为关联类型移动到Table特性中:

trait Table {
type Header;
type Row;

fn rows(&self) -> &Vec<Self::Row>;
fn header(&self) -> &Self::Header;
}
实现此特征时,您可以指定要用作 HeaderRow的类型。
然后,您可以修改 Writer以仅接受一个模板参数:
trait Writer<T: Table> {}

关于rust - 如何从主泛型推论出子泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63485574/

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