Rust 始めました。

とにかく JavaScript っぽい。馴染める。

カニの本も持っているのですが、それよりいい資料をみつけました。

なんと日本語訳をされている方がいます。非常にわかりやすいです。 https://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/getting-started.html

他にも日本語資料が充実しています。大変素晴らしい翻訳で感動しました。 https://doc.rust-jp.rs/

ということでやっていきます。

インストール

curl https://sh.rustup.rs -sSf | sh

rustc --version # 正常に実行できる状態か確認

Intellij IDEA に Rust プラグインがあるのでこれをインストール。

プロジェクトを作るときに勝手に Cargo でプロジェクトを作ってくれる。楽。

実行

cargo run # build した上で実行してくれる

こんな感じで WebStorm みたいにすぐ実行することもできる。

Screen Shot 2018-11-21 at 20.20.34

数字当て

https://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/guessing-game.html

Rust
// crate は npm っぽいやつ
// import rand みたいな意味
extern crate rand;

// import { Rng } from rand みたいなやつ
// それぞれ io, Rng という変数で使えるようにバラしている感じ
use std::io;
use rand::Rng; // Rng は型っぽい。正確にはトレイトという名前。

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

    // :: で属しているメソッド的なものを実行できるぽい
    let secret_number = rand::thread_rng().gen_range(1, 101);

    // {} に secret_number がガット入るっぽい
    println!("The secret number is: {}", secret_number);

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

    // mut と書くのはミューテイションできる変数を作るため
    // String::new() でからの文字列を作る
    let mut guess = String::new();

    // stdin() でユーザー入力を受け取って
    // read_line で中身を guess に mutation できる形で紐づけてるぽい
    // .expect は read_line の返り値である Result 型の値には expect というメソッドが生えているらしい
    io::stdin().read_line(&mut guess)
        .expect("failed to read line");

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