2014-09-17 2 views
1

Я пытаюсь понять разницу между случаем, когда структуры содержат простые типы, и когда они содержат другие структуры. Все путеводители/примеры/... кажется, используют только основные типы, как поля и это работает:Использование структур в полях

struct Something { 
    some: i32, 
    numbers: i32, 
} 

Но это приводит к ошибке:

struct Something { 
    reader: Reader, 
    writer: Writer, 
} 

На текущий мастер: error: explicit lifetime bound required

Так в чем же тут решение? Something построен как с reader, так и с writer и возвращается с этой функцией - reader и writer сами не копируются нигде.

ответ

2

Reader и Writer - это черты, а не другие структуры, поэтому этот код не работает.

Что вы хотите сделать это работать с другими структурами, как вы можете видеть here:

fn main() { 
    #[deriving(Show)] 
    struct OtherStruct { 
     s: uint, 
    } 
    #[deriving(Show)] 
    struct Something { 
     reader: OtherStruct, 
    } 
    println!("{}" , Something { reader : OtherStruct { s : 10 } }); 
} 

Для реального читателя, который вы хотите использовать вы можете посмотреть here.

Смежные вопросы