第3章: Rustの基本構文

第3章では、Rustプログラミングにおける基本的な構文について解説していきます。この章を通して、Rustの基本的な要素と文法に慣れ、後の章で扱う高度なトピックにスムーズに進めるようにしていきましょう。Rustの基本文法はシンプルでわかりやすい構造ですが、メモリの安全性や所有権の概念が基礎にあるため、最初から効率的で安定したコードを書けるようになります。

3.1 変数と定数の定義

Rustでは、変数と定数を使ってデータを扱いますが、他の多くの言語とは異なり、変数はデフォルトで不変(immutable)です。Rustでは、安全な並行処理のため、変数を明示的に変更可能にしなければならないため、コードが予期せず変更されるリスクを防ぎやすくなっています。

3.1.1 変数の定義

変数は let キーワードで定義します。例えば、整数値の変数を作る場合、次のように書きます。

fn main() {
let x = 5;
println!("The value of x is: {}", x);
}

上記のコードでは、変数 x を定義し、その値を5に設定しています。この変数はデフォルトで不変なので、 x に再代入しようとするとコンパイルエラーが発生します。Rustでは、デフォルトの不変性がコードの安全性と予測可能性を保つのに役立ちます。

3.1.2 変更可能な変数

変更可能な変数を作成するには、 mut キーワードを使用します。例えば、次のように mut を使って変数 y を変更可能にします。

fn main() {
let mut y = 10;
println!("The initial value of y is: {}", y);

y = 20;
println!("The new value of y is: {}", y);
}

この場合、 y に新しい値を代入してもエラーは発生しません。mut を用いることで、変数が予期しない変更を受ける可能性がある場合でも、その意図を明確に示すことができます。

3.1.3 定数の定義

定数は const キーワードで定義します。定数は実行時に変更できず、定数式でしか初期化できません。また、変数とは異なりスコープ内で再定義することもできません。

const MAX_POINTS: u32 = 100_000;

ここで、 MAX_POINTS は型 u32 (32ビットの符号なし整数)で定義されており、大文字とアンダースコアで命名されているのが特徴です。Rustでは、定数名は通常すべて大文字で書き、アンダースコアで区切ります。定数はグローバルに定義することができ、プログラム全体で使用することが可能です。

3.2 型の概要

Rustは静的型付け言語であり、すべての変数の型はコンパイル時に決まります。変数の型はRustのコンパイラが自動的に推論しますが、明示的に型を指定することも可能です。

3.2.1 基本的な型

Rustの基本的な型は以下の通りです。

  1. 整数型 (i8, i16, i32, i64, i128, isize): 符号付きの整数。ビット数が異なる様々なサイズがあり、用途に応じて選べます。
  2. 符号なし整数型 (u8, u16, u32, u64, u128, usize): 符号がなく、非負の整数のみを扱います。
  3. 浮動小数点型 (f32, f64): 小数を扱うための型で、f32 は単精度、f64 は倍精度です。
  4. 文字型 (char): Unicode対応の1文字を表す型で、4バイトのメモリを使用します。
  5. ブーリアン型 (bool): true または false の2つの値を持つ論理型です。

型を明示する場合は、変数の定義に : を使って型を指定します。例えば、整数型の変数 zi32 として宣言する場合は次のようになります。

fn main() {
let z: i32 = 42;
println!("The value of z is: {}", z);
}

3.2.2 型変換

Rustは型の明示的な変換を必要とします。異なる型間で値を変換するには、 as キーワードを使います。次に、整数型 i32f64 に変換する例を示します。

fn main() {
let int_value: i32 = 10;
let float_value: f64 = int_value as f64;
println!("The float value is: {}", float_value);
}

3.3 関数の定義と使用

Rustでは関数を定義する際に fn キーワードを使用します。関数には入力(引数)と出力(戻り値)があり、型はすべて明示的に指定する必要があります。例えば、次のコードは、2つの整数を受け取り、その合計を返す関数 add を定義しています。

fn add(x: i32, y: i32) -> i32 {
x + y
}

fn main() {
let result = add(5, 3);
println!("The sum is: {}", result);
}

関数の戻り値の型は -> の後に記述します。また、Rustでは暗黙の return キーワードを使わず、最後の式の結果がそのまま返される特徴があります。このため、 x + y の行にはセミコロンを付けていません。

3.4 制御構文

Rustでは、基本的な制御構文を使用して条件分岐やループを実行できます。

3.4.1 条件分岐

条件分岐には if キーワードを使います。Rustの if 文では条件に括弧を付ける必要がありませんが、ブロックの中には必ず {} で囲む必要があります。

fn main() {
let number = 7;

if number < 5 {
println!("The number is less than 5");
} else if number > 5 {
println!("The number is greater than 5");
} else {
println!("The number is 5");
}
}

このコードは、 number の値に応じて異なるメッセージを出力します。Rustでは、 if 文は式として使えるため、次のように値を代入する際にも使うことができます。

fn main() {
let condition = true;
let number = if condition { 5 } else { 10 };
println!("The value of number is: {}", number);
}

3.4.2 ループ

Rustには主に3つのループ構造があります。

無限ループ (loop)r

    fn main() {
    let mut count = 0;
    loop {
    count += 1;
    if count == 5 {
    break;
    }
    println!("Count is: {}", count);
    }
    }

    while ループ

      fn main() {
      let mut num = 3;
      while num != 0 {
      println!("{}!", num);
      num -= 1;
      }
      println!("Liftoff!");
      }

      for ループ

      for ループはリストや範囲で繰り返しを行うために使用され、範囲演算子 (..) と共に使うと便利です。

      fn main() {
      for number in 1..4 {
      println!("The number is: {}", number);
      }
      }


        初心者におすすめ!プログラミングスクールのススメ

        未経験でも気軽に!サブスク型プログラミングスクール【Freeks】

        プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。

        独学の挫折率、驚きの87.5%!

        独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。

        有料と無料、スクールの違いは?

        プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:

        • 受講条件が異なる
        • 学べるスキルやカリキュラム内容が異なる
        • 就職や転職のサポート内容が異なる

        どちらが自分に合っているか、よく考えて選ぶのが大事です。

        サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!

        プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:

        • 未経験者向けのわかりやすいカリキュラム
        • 経験豊富なエンジニアのサポート
        • オンラインで自分のペースで学習可能

        なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。

        終了後は副業もサポート!

        カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。

        独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
         ↓ ↓ こちらをクリック ↓ ↓ 

        Related Post