3
我刚开始学习Rust,我在想是否有办法重载方法。 起初我创建了一个结构并使用'impl'来实现基本的'new'方法。然后我想用一些参数添加'新'方法,并且我尝试使用这个特性。如何重载'新'方法?
以下代码已成功编译,但是一旦我尝试使用带有params的'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 }
}
}
谢谢!我懂了。 –