Нужна помощь в получении элемента (структуры) по идентификатору из списка и возврате этого элемента. (Для начинающих) - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу создать список, содержащий структуры. Затем получить конкретный элемент из списка и вернуться в функцию. Что я делаю неправильно. Я очень плохо знаком с этим языком, но я попытался взглянуть на документацию, но я бы хотел помочь. Кто-нибудь знает, как это сделать?

struct Foo{
    id: u8,
    name: String
}

fn get_foo_by_id(id: u8) -> Foo {

    let mut foo_1 = Attraction {
        id: 2,
        name: String::from("Foo 1"),        
    };

    let mut foo_2 = Attraction {
        id: 2,
        name: String::from("Foo 2"),        
    };

    let mut foo_3 = Attraction {
        id: 3,
        name: String::from("Foo 3"),        
    };

    let mut listOfFoos: Vec<Foo> = Vec::new();
    listOfFoos.push(foo_1);
    listOfFoos.push(foo_2);
    listOfFoos.push(foo_3);

    let mut iter = listOfFoos.into_iter().find(|a| a.id == id);
    println!("{}",iter.name); //Error: no field `name` on type `std::option::Option<Attraction>`
    iter //Error: ^^^^ expected struct `Foo`, found enum `std::option::Option`
}
...