シェルスクリプトマガジン

漢のUNIX(Vol.64掲載)

著者:後藤 大地

今回も引き続き、プログラミング言語の「Rust」について解説する。前回も取り上げたが、Rustの学習は「The Rust Programming Language」(https://doc.rust-lang.org/book/)に沿って進めるのがよいと思う。The Rust Programming Languageではまず、「数当てゲーム」(Guessing Game、英訳としては「推測ゲーム」)のプログラムを開発する。これによって、Rustのプログラミングを一通り学べる。

シェルスクリプトマガジン Vol.64は以下のリンク先でご購入できます。

図3 自動生成されるRustプログラムのソースコードファイル「src/main.rs」

fn main() {
    println!("Hello, world!");
}

図4 コンパイルに必要な構成情報や依存関係を記したファイル「Cargo.toml」

[package]
name = "guessing_game"
version = "0.1.0"
authors = ["Daichi GOTO <daichigoto@example.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

図6 ユーザーに対して入力を求め、その入力を受け付けて「あなたの予測値:」として入力値を表示するプログラム(main.rs)

use std::io;

fn main() {
    println!("数当てゲーム!");

    println!("数を入力してください");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("読み込みに失敗しました");

    println!("あなたの予測値: {}", guess);
}

図8 変数に値を2回代入するサンプルコード(src/main.rs)

fn main() {
    let v;

    v = 1;

    v = 2;
}

図10 mutを指定して値を変更できる変数と宣言したサンプルコード(src/main.rs)

fn main() {
    let mut v;

    v = 1;

    v = 2;
}

図12 read_line()関数の戻り値を表示させるコード

use std::io;

fn main() {
    let mut s = String::new();

    println!("戻り値: {}", 
        io::stdin().read_line(&mut s).expect("エラー"));
}