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); }
所以我试图收集元组到我的结构的Vec。我不知道怎么做 您的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
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);
}