Rust 変数とコーディングルールをざっくり把握する

この記事について環境構築も終わり、パッケージの作成も覚えたところでRustの基礎をどんどん進めていきましょう。
今回は変数について。
環境構築とパッケージの作成がまだの方は以下の記事を参照してください。

【環境構築】Rust M1 Mac

Rust とは? 特徴や将来性

cargo new のおさらい

前回の記事のおさらいとしてテスト用のパッケージを作成しましょう。

cargo new 使い方 ~ println!()

// kotarostudioというパッケージを作成
cargo new kotarostudio

src内のmain.rsに書き込みます。

ちなみにRustのコーディングルールを簡単にまとめておきます。
      
  1. 1行あたり100文字以内。
  2.   
  3. インデントはスペース4。(タブは使わない)
  4.   
  5. 行末とファイル末尾には空白、空行は入れない。
  6.   
  7. 演算子は空白を入れる。

let文

エディタはVScodeを使っています。

VScodeについてはPythonの環境構築記事にて。

fn main() {
    let x = 50;
    println!("x = {}", x);
}

VScodeで保存し、cd で移動してからcargo runでビルド&実行してみましょう。

// 実行結果
x = 50

となります。

xと50が紐づけられており、Pythonでいうところの代入になります。

let mut

ただしPythonのように自由に代入値を変更することはできず、let文によって定義されたデフォルト変数はあとから変更ができません。

変更可能な代入の場合は、let文にmutを追記します。

fn main() {
    let mut x = 50;
    println!("x = {}", x);
    x = 70;
    println!("x = {}", x);
}

このように変更できました。

mutがついていない値は変更できないためより総合的なコーディングのコントロールが俯瞰的に見えるようになります。

代入値の変更を意図的にする必要があるというのはとても便利な機能であると言えます。

const

constはletとは異なり型を明示しなければいけません。

constは不変な値が束縛されるため、mutは使えません。

重要constはすべて大文字で記述するのが慣習となっています。
const FOURTY_TWO: i32 = 42;
fn main() {
    println!("FOURTY_TWO = {}", FOURTY_TWO);
}
// 実行結果
FOURTY_TWO = 42

static変数

Rustのグローバル変数で、コンパイル時にメモリの位置を決定します。

こちらもconst同様すべて大文字で記述するのが慣習となります。

static mut X: i32 = 42;
fn main(){
    unsafe{
        X += 1;
        println!("X = {}", X);
    }
}
// 実行結果
X = 43

Kotaro
Kotaro
服部 洸太郎
音大を卒業後ピアニストとして活動。
自身のピアノトリオで活動後北欧スウェーデンにてシンガーアーティストLindha Kallerdahlと声帯とピアノによる即興哲学を研究。
その後ドイツへ渡りケルンにてAchim Tangと共に作品制作。
帰国後、金田式電流伝送DC録音の名手:五島昭彦氏のスタジオ「タイムマシンレコード」にアシスタントとして弟子入りし、録音エンジニアとしての活動開始。
独立後、音楽レーベル「芸術工房Pinocoa(現在はKotaro Studioに統合)」を立ち上げ、タンゴやクラシックなどのアコースティック音楽作品を多数プロデュース。
その後、秋山庄太郎氏後継の写真スタジオ「村上アーカイブス」でサウンドデザイナー兼音響担当として映像制作チームに参加。
村上宏治氏の元で本格的に写真、映像技術を学ぶ。
祖父母の在宅介護をきっかけにプログラムの世界に興味を持ち、介護で使えるプログラムをM5Stackを使って自作。
株式会社 ジオセンスの代表取締役社長:小林一英氏よりプログラムを学ぶ。
現在はKotaro Studioにてアルゼンチンタンゴをはじめとした民族音楽に関する文化の研究、ピアノ音響、さらに432hz周波数を使った癒しのサウンドを研究中。
スタジオでは「誰かのためにただここに在る」をコンセプトに、誰がいつ訪れても安心感が得られる場所、サイトを模索中。