Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 需要帮助从列表中按id获取项(结构)并返回该项。(初学者)_Rust_Iterator - Fatal编程技术网

Rust 需要帮助从列表中按id获取项(结构)并返回该项。(初学者)

Rust 需要帮助从列表中按id获取项(结构)并返回该项。(初学者),rust,iterator,Rust,Iterator,我想创建一个包含结构的列表。然后从列表中获取特定项并在函数中返回。我做错了什么。我对这门语言很陌生,但我试着看一下文档,但我希望能得到帮助。有人知道怎么做吗 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"),

我想创建一个包含结构的列表。然后从列表中获取特定项并在函数中返回。我做错了什么。我对这门语言很陌生,但我试着看一下文档,但我希望能得到帮助。有人知道怎么做吗

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`
}
structfoo{
id:u8,
名称:String
}
fn通过_id(id:u8)->foo获取_foo{
让mut foo_1=吸引力{
id:2,
名称:String::from(“Foo 1”),
};
让mut foo_2=吸引力{
id:2,
名称:String::from(“Foo 2”),
};
让mut foo_3=吸引力{
id:3,
名称:String::from(“foo3”),
};
让mut listofoos:Vec=Vec::new();
食物清单.推送(食物1);
推进(foo_2);
食物清单.推送(食物3);
让mut iter=listofoos.into_iter().find(|a | a.id==id);
println!(“{}”,iter.name);//错误:类型'std::option::option'上没有字段'name'`
iter//错误:^^^^应为结构'Foo',找到枚举'std::option::option'`
}

如果编译了示例,您希望
get\u foo\u by\u id(4)
返回什么?