gpt4 book ai didi

methods - 定义元组方法

转载 作者:行者123 更新时间:2023-11-29 07:46:42 25 4
gpt4 key购买 nike

这是一个用于双元素元组的 swap 函数:

fn swap<A, B>(obj: (A, B)) -> (B, A)
{
let (a, b) = obj;

(b, a)
}

使用示例:

fn main() {
let obj = (10i, 20i);

println!("{}", swap(obj));
}

有没有办法将 swap 定义为二元组的方法? IE。这样它就可以被称为:

(10i, 20i).swap()

最佳答案

是的,有。只需定义一个新特征并立即实现它,就像这样:

trait Swap<U> {
fn swap(self) -> U;
}

impl<A, B> Swap<(B, A)> for (A, B) {
#[inline]
fn swap(self) -> (B, A) {
let (a, b) = self;
(b, a)
}
}

fn main() {
let t = (1u, 2u);
println!("{}", t.swap());
}

请注意,为了使用此方法,您必须将 Swap 特性导入到您要调用该方法的每个模块中。

关于methods - 定义元组方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304903/

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