gpt4 book ai didi

rust - 所有 T、&T、&mut T、[T]、&[T]、*mut T 的通用实现

转载 作者:行者123 更新时间:2023-11-29 08:26:27 29 4
gpt4 key购买 nike

考虑这段代码:

pub trait Hello {
fn hello(&self);
}

impl Hello for Any {
fn hello(&self) {
println!("Hello!!!!!");
}
}

我记得在某处看到 Rust 中有一个新特性,它可以让你实现一个所有对象都可以直接访问的函数,如下所示:

let foo = 0 as u8;
foo.hello();

很遗憾,我没能找到它。是否真的有一个全局/通用的“实现者”?

最佳答案

好吧,你可以对你的特征做一个通用的实现:

pub trait Hello {
fn hello(&self);
}

impl<T> Hello for T {
fn hello(&self) {
println!("Hello!!!!!");
}
}

fn main() {
let foo = 0 as u8;
foo.hello();
let bar = "world!".to_string();
bar.hello();
}

请注意,Rust 目前不允许对泛型进行专门化(尽管上面有一个 open RFC),因此您的特征实现必须按原样适用于任何 T。

关于rust - 所有 T、&T、&mut T、[T]、&[T]、*mut T 的通用实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56177664/

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