【发布时间】:2015-01-18 07:54:34
【问题描述】:
我刚开始学习 Rust,我想知道是否有办法重载方法。 起初我创建了一个结构并使用“impl”来实现基本的“新”方法。然后我想用一些参数添加“新”方法,并尝试使用 trait。
以下代码已成功编译,但是一旦我尝试使用带有参数的“新”,编译器就给我一个关于额外参数的错误。 那么我应该如何在 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 }
}
}
【问题讨论】:
标签: struct overloading rust