구조체가 있고 Vector의 형식에 특성 제한이있는 Vec 멤버가 필요합니다.특성 제한이있는 모든 형식의 벡터 구성
pub trait SomeTrait {
fn some_function(&self);
}
pub struct SomeStruct<T: SomeTrait> {
member: Vec<T>
}
impl<T: SomeTrait> SomeStruct<T> {
pub fn new() -> SomeStruct<T> {
SomeStruct {
member: Vec::new()
}
}
}
fn main() {
let mut some_struct = SomeStruct::new();
}
을 그리고 컴파일러는 나에게주고있다 : 바로 지금,이 내가 노력하고 무엇에 걸쳐 있지만, 단지 심지어 낯선 컴파일러 오류를 받고 다양한 장소에서
error: the trait 'sometrait::SomeTrait' is not implemented for the type '_'
let mut some_struct = SomeStruct::new();
^~~~~~~~~~~
note: required by 'somestruct::SomeStruct<T>::new'
let mut some_struct = SomeStruct::new();
^~~~~~~~~~~
내가 배치 해봤 <T: SomeTrait>
, 그러한 시도는 근본적으로 벗어나야합니다.
미리 도움을 청하십시오!
impl은 some_function을 구현해야합니까? (와일드 추측.) –
내가 이해하는 바로는,'some_struct.member' 벡터의 요소는'some_function'을 구현할 필요가 있습니다. 반드시 구조체 일 필요는 없습니다. 적어도, 그것이 내가 지향하는 것입니다 ... 그러나 구문이 무엇인지 전혀 모르겠습니다. – nathansizemore