Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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
Struct 如何为我的结构实现FromIterator特性? 使用itertools::itertools; 结构转轮{ h:u8, m:u8, s:u8, } impl转轮{ fn来自(v:(u8,u8,u8))->Runner{ 跑步者{ h:v.0, m:v.1, s:v.2, } } } fn字符串\u到\u vec(strg:&str)->vec{ 标准拆分(“,”) .map(| personal_result | personal_result.split('|')) .flatte() .map(|x | x.parse::().unwrap()) .tuples::() 收集::() } fn stati(strg:&str)->字符串{ 让run_vec=string_to_vec(strg); }_Struct_Rust_Iterator_Tuples_Collect - Fatal编程技术网

Struct 如何为我的结构实现FromIterator特性? 使用itertools::itertools; 结构转轮{ h:u8, m:u8, s:u8, } impl转轮{ fn来自(v:(u8,u8,u8))->Runner{ 跑步者{ h:v.0, m:v.1, s:v.2, } } } fn字符串\u到\u vec(strg:&str)->vec{ 标准拆分(“,”) .map(| personal_result | personal_result.split('|')) .flatte() .map(|x | x.parse::().unwrap()) .tuples::() 收集::() } fn stati(strg:&str)->字符串{ 让run_vec=string_to_vec(strg); }

Struct 如何为我的结构实现FromIterator特性? 使用itertools::itertools; 结构转轮{ h:u8, m:u8, s:u8, } impl转轮{ fn来自(v:(u8,u8,u8))->Runner{ 跑步者{ h:v.0, m:v.1, s:v.2, } } } fn字符串\u到\u vec(strg:&str)->vec{ 标准拆分(“,”) .map(| personal_result | personal_result.split('|')) .flatte() .map(|x | x.parse::().unwrap()) .tuples::() 收集::() } fn stati(strg:&str)->字符串{ 让run_vec=string_to_vec(strg); },struct,rust,iterator,tuples,collect,Struct,Rust,Iterator,Tuples,Collect,所以我试图收集元组到我的结构的Vec。我不知道怎么做 您的from()函数不会被神奇地调用,即使您实现了trait,也需要显式地调用它: 使用itertools::itertools; 结构转轮{ h:u8, m:u8, s:u8, } 为跑步者从中导入{ fn来自(v:(u8,u8,u8))->Runner{ 跑步者{ h:v.0, m:v.1, s:v.2, } } } fn解析运行程序(strg:&str)->Vec{ 标准拆分(“,”) .flat_map(| personal_resu

所以我试图收集元组到我的结构的Vec。我不知道怎么做

您的
from()
函数不会被神奇地调用,即使您实现了trait,也需要显式地调用它:

使用itertools::itertools;
结构转轮{
h:u8,
m:u8,
s:u8,
}
为跑步者从中导入{
fn来自(v:(u8,u8,u8))->Runner{
跑步者{
h:v.0,
m:v.1,
s:v.2,
}
}
}
fn解析运行程序(strg:&str)->Vec{
标准拆分(“,”)
.flat_map(| personal_result | personal_result.split('|'))
.map(|x | x.parse::().unwrap())
.tuples::()
.map(From::From)
收集::()
}
use itertools::Itertools;

struct Runner {
    h: u8,
    m: u8,
    s: u8,
}

impl Runner {
    fn from(v: (u8,u8,u8)) -> Runner {
        Runner {
            h: v.0,
            m: v.1,
            s: v.2,
        }
    }
}

fn string_to_vec(strg: &str) -> Vec<Runner> {
    strg.split(", ")
        .map(|personal_result| personal_result.split('|'))
        .flatten()
        .map(|x| x.parse::<u8>().unwrap())
        .tuples::<(_, _, _)>()
        .collect::<Vec<Runner>>()
} 
    
fn stati(strg: &str) -> String {
    let run_vec = string_to_vec(strg);
}