我刚开始学习 Rust,想知道是否有一种方法可以重载方法。首先我创建了一个结构体,并使用 'impl' 实现了基本的 'new' 方法。之后,我尝试在其中添加带有一些参数的 'new' 方法,并尝试使用 trait 实现它。
下面的代码编译成功,但是当我尝试使用带有参数的 'new' 方法时,编译器会报错,提示有多余的参数。那么我该如何在 Rust 中进行方法重载呢?
下面的代码编译成功,但是当我尝试使用带有参数的 'new' 方法时,编译器会报错,提示有多余的参数。那么我该如何在 Rust 中进行方法重载呢?
pub struct Words<'a> {
pub nouns: Vec<&'a str>,
}
trait Test<'a>{
fn new(nouns: Vec<&'a str>) -> Self;
}
impl<'a> Words<'a> {
pub fn new() -> Words<'a>{
let nouns = vec!["test1", "test2", "test3", "test4"];
Words{ nouns: nouns }
}
pub fn print(&self){
for i in self.nouns.iter(){
print!("{} ", i);
}
}
}
impl<'a> Test<'a> for Words<'a> {
fn new(nouns: Vec<&'a str>) -> Words<'a>{
Words{ nouns: nouns }
}
}