gpt4 book ai didi

rust - 如何实现适用于所有结构类型参数的方法?

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

我有以下结构

struct Position<T> {
ns: i32,
we: i32,
orientation: T
}
我希望有以下方法,而不必为我打算使用的每种类型 T 重复其实现,因为方法实现实际上并不依赖于 T 我认为这是可能的,但我不知道如何.
impl Position {
fn distance(&self) -> i32 {
self.ns.abs() + self.we.abs()
}
}
我已经尝试在 impl 行中添加一个类型参数,但显然这只适用于具体类型而不适用于类型变量,这是我在这里需要做的我想做的事情。我已经尝试过 <_>但也没有骰子。
这可以在 Rust 中做到吗?

最佳答案

如果你有方法 Position适用于任何 T ,您可以将它们放在 impl没有界限:

impl<T> Position<T> {
fn distance(&self) -> i32 {
self.ns.abs() + self.we.abs()
}

// fn ....
}
请记住,您可以拥有多个 impl类型的 block 。因此,如果您有需要 T 的方法要绑定(bind),您可以添加
impl<T: Clone> Position<T> {
// fn ...
}

关于rust - 如何实现适用于所有结构类型参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65264240/

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