アウトプットの部屋

エンジニアになるためのアウトプット

Rust② 数字当てゲーム1

main.js

use std::io;

fn main() {
    println!("Guess the number!"); 

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

let は変数を宣言する。mutはmutableの意味で変数の値を変更できる。

//はコメント(日本語はコンパイル失敗する可能性がある)

let mut bar = 5; // mutable

文字列型のオブジェクトを作成

String::new();

「::」はnewがString型の関連関数であることを表している。 関連関数とは、String型の特定のオブジェクトよりも型(この場合はString)に対して 実装された関数のことであり、静的(スタティック)メソッドと呼ばれる言語もある。

簡単に言えば、「空のString型のオブジェクトを生成する」という意味。

io::stdin().read_line(&mut guess)
    .expect("Failed to read line");

io::stdin()はユーザーの入力を受け付ける(use std::io;が必要)

read_line(&mut guess) read_lineメソッドは、ユーザが標準入力したものすべてを取り出し、文字列に格納することなので、 格納する文字列を引数として取る。 引数は可変である必要があるため、guessではなく&mutをつける。

読み込みに失敗したらexpectが呼び出される。

{}の使い方

let x = 5;
let y = 10;

println!("x = {} and y = {}", x, y);
=>x = 5 and y = 10