LoginSignup
1
0

More than 1 year has passed since last update.

Rust でコマンドライン引数を数値として受け取る

Posted at

Rust でコマンドライン引数を数値として受け取る

コード

use std::env;
use std::num::ParseIntError;

fn main() {

    let args = env::args()
        .skip(1)
        .map(|str| str.parse())
        .collect::<Result<Vec<i32>, ParseIntError>>();

    let args = match args {
        Ok(list) => list,
        Err(_) => {
            eprintln!("Input Numbers");
            process::exit(1);
        }
    };

    println!("{:?}", args);
}

説明

env::args() でコマンドライン引数を取得できます。String のイテレータです。
一つ目にプログラム名が入ってるので skip(1) します。
map でそれぞれの値を変換します。
何に変換するかは collect で指定してます。
失敗した場合は、ParseIntError です。

参考

https://doc.rust-jp.rs/book-ja/ch12-01-accepting-command-line-arguments.html
https://doc.rust-lang.org/stable/std/string/struct.String.html#method.parse
https://doc.rust-lang.org/stable/std/str/trait.FromStr.html
https://doc.rust-lang.org/std/num/struct.ParseIntError.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0