簡體   English   中英

如何為我的結構實現 FromIterator 特征?

[英]How do I implement a FromIterator trait for my struct?

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);
}

所以我試圖將元組收集到我的結構的 Vec 中。 不知道該怎么做https://www.codewars.com/kata/55b3425df71c1201a800009c/train/rust

你的from() function 不會被神奇地調用,即使你實現了特征From ,你也需要顯式調用它:

use itertools::Itertools;

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

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

fn parse_runner(strg: &str) -> Vec<Runner> {
    strg.split(", ")
        .flat_map(|personal_result| personal_result.split('|'))
        .map(|x| x.parse::<u8>().unwrap())
        .tuples::<(_, _, _)>()
        .map(From::from)
        .collect::<Vec<Runner>>()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM