@ledsun blog

無味の味は佳境に入らざればすなわち知れず

rust を味見する 2

CSVを処理するサンプルプログラムを動かしてみます。

cargo new peguins
cd penguins
code .

こんな感じでパッケージをつくってVSCodeで編集します。

f:id:ledsun:20220101085247p:plain
VSCodeでパッケージを編集する

地道に写経します。

fn main() {
    let penguin_data = "\
    common name, length (cm)
    Little Penguin, 36
    Yellow-eyed Penguin, 65
    Fiordland Penguin, 76
    Invalid, data
    ";

    let records = penguin_data.lines();

    for (i, record) in records.enumerate() {
        if i == 0 || record.trim().len() == 0 {
            continue;
        }

        let fields: Vec<> = record
            .split(',')
            .map(|field| field.trim())
            .collect();
        if cfg!(debug_assertions) {
            eprintln!("debug: {:?} -> {:?}", record, fields);
        }
    }
}

この辺まで書いてビルドしてみます。

f:id:ledsun:20220101090055p:plain
コンパイルエラー

ジェネリクス(?)の型引数(?)が必要みたいです。