gpt4 book ai didi

rust - Into 的多个泛型

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

我正在为我的游戏引擎开发 Assets 管理器。
这是代码的简化版本:

trait Animal {
fn create<P>(name: P) -> Self
where
P: Into<PathBuf>;
}

struct Dog;

impl Animal for Dog {
fn create<P>(name: P) -> Self
where
P: Into<PathBuf>
{
Self {}
}
}

fn create_animal<A, P>(name: P) -> A
where
P: Into<PathBuf>,
A: Animal,
{
A::create(name)
}

当我尝试调用 create_animal像这样,我收到以下错误:
let dog = create_animal::<Dog>("Spike"); // Error: wrong number of type arguments: expected 2, found 1
现在可以调用此函数的唯一方法是显式传递两种类型:
let dog = create_animal::<Dog, &str>("Spike"); // This code is correct
我想知道是否有任何方法可以在不显式传递其类型的情况下将 Into 与任何其他特征绑定(bind)一起使用(如第一个示例中所示)。

最佳答案

您可以使用 _不指定第二种类型:

let dog = create_animal::<Dog, _>("Spike");
或者指定变量的类型:
let dog: Dog = create_animal("Spike");

关于rust - Into<PathBuf> 的多个泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62975050/

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