#2 Rustで学ぶ変数とデータ型の基本
Rustの変数には、他の言語にはあまり見られない大きな特徴があります。それは「デフォルトで値を変更できない」という仕組みです。この記事では、Rustにおける変数の作り方と、代表的なデータ型を解説します。
letで変数を作る
Rustでは、letというキーワードで変数を作ります。
let age = 20;
ここで注意したいのが、このageという変数は、後から値を変更しようとするとエラーになるという点です。Rustの変数は、初期状態では「イミュータブル(変更不可)」として扱われます。
値を変更したいときはmutを付ける
値を後から変更したい場合は、mutというキーワードを付けます。
let mut age = 20;
age = 21;
この「デフォルトは変更不可、必要なときだけmutを付ける」という設計は、意図しない値の書き換えによるバグを防ぐためのRustらしい工夫です。
代表的なデータ型
Rustの基本的なデータ型には、次のようなものがあります。
- 整数(i32, u32 など): 符号の有無やサイズごとに種類がある
- 浮動小数点数(f64 など)
- 真偽値(bool)
- 文字列(String, &str)
整数の種類が細かく分かれているのはRustらしい特徴で、扱う数値の範囲に応じて適切な型を選びます。迷ったらi32を使っておけば、多くの場面で問題ありません。
シャドーイングという独自の仕組み
Rustには、同じ変数名でletを再度使うと、新しい変数として扱われる「シャドーイング」という仕組みがあります。
let age = "20"; // 文字列として受け取る
let age: i32 = age.parse().unwrap(); // 数値に変換した新しいageで上書き
mutのように同じ型のまま値を変更するのではなく、型そのものを変えた「別の変数」として扱える点が、mutとの違いです。
定数を表すconst
値を変更されたくない場合はconstを使います。letとは異なり、型を省略できません。
const MAX_SCORE: i32 = 100;
Rustならではの注意点
Rustにも型推論があるため、let age = 20;のように型を省略しても動きます。ただし、変更可能かどうかを表すmutは省略できません。「値を変更したいのにエラーが出る」と感じたら、まずmutを付け忘れていないか確認しましょう。
まとめ
Rustの変数は、デフォルトで変更不可という他の言語にはない特徴を持っています。mutを付けるかどうかや、シャドーイングという独自の仕組みを意識することが、Rustらしいコードを書く第一歩になります。
本ページはプロモーションを含みます。
参考書籍(PR)
Rustをもっと学びたい方には「実践Rust入門[言語仕様から開発手法まで]」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿