技術広報ブログ

技術広報のためブログです。

Rust勉強メモ1

7月16日に開催されたRustのもくもく会に参加したので、勉強したことをメモしておきます。 基本的にはソシムさんから刊行された『手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた』を動かしながら読み進めています。

インストール

curl -- proto 'https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

パス

export PATH="$PATH:$HOME/.cargo/bin"

バージョンの確認

rustc --version

バージョンのアップデート

rustup update

VSCodeをインストール。拡張機能でRustが非推奨になっており、代わりにrust-analyzerをインストール。

Hello Worldのコード

fn main(){
    println!("Hello World")
}

コンパイル

rustc hello.rs

実行

./hello

Rustは必ずmain関数を記述する必要がある。このmain関数をエントリーポイントという。 Rustには末尾に「!」をつけることがある。これはマクロであることを示している。

文字列に埋め込むには、{}の中に変数を置き換えて表示する Rustでは変数への代入を「値を変数に束縛する」というらしい。

fn main(){
    let price = 300;
    println!("ガムの値段は{}円", price)
}

四則演算の問題。答えを見ずになんとなくで書いたコード

fn main(){
    let bike = 80.0;
    let train = 300.0;
    let moon = 384400.0;

    println!("バイクの場合は{}日です", moon / bike / 24.0);
}

適当に書いた割には合っていたようですが、「train変数が使われていないよ」という警告が出る(おもしろ)。

warning: unused variable: `train`
 --> q1.rs:3:9
  |
3 |     let train = 300.0;
  |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_train`
  |
  = note: `#[warn(unused_variables)]` on by default

warning: 1 warning emitted

実行結果

バイクの場合は200.20833333333334日です

Rustは型に厳しい言語なので、整数と実数は明確に区別される。

■for文の書き方

for 変数 in 開始地 .. 終値 +1 {
    処理
}

■if文の書き方

if 条件1 {
    処理1
} else if 条件2 {
    処理2
} else {
    処理3
}

■print!とprintln!の違い

print! = 改行がない

println! = 改行がある

■変数

letで宣言した値はイミュータブルな変数になる

let 変数名 = 値;

ミュータブルな変数にするにはmutをつける

let mut 変数名 = 値;

Rustでは不変な変数が基本となっている。 余計にmutをつけると、以下のように警告が帰ってくる

fn main(){
let pc = 98000.0;
println!("A社は{}円です", pc * 0.8 +1200.0);
println!("B社は{}円です", pc * 0.9);
}
warning: variable does not need to be mutable