Rust 速習チュートリアル

Rust の演算子

1. 演算子(オペレータ)

演算子(オペレータ)は、値や変数に対して特定の操作を行うために使用されます。
Rustでは、以下のような多くの一般的なオペレータをサポートしています。

  • 算術演算子 (Arithmetic Operators)
  • 代入演算子 (Assignment Operators)
  • 比較演算子 (Comparison Operators)
  • 論理演算子 (Logical Operators)

2. 算術演算子 (Arithmetic Operators)

算術演算子は、基本的な数学的計算を行うために使用されます。

オペレータ名前結果
+加算 (Addition)5 + 38
-減算 (Subtraction)5 - 32
*乗算 (Multiplication)5 * 315
/除算 (Division)10 / 25
%剰余 (Remainder / Modulus)10 % 31

例:

fn main() {
  let add = 5 + 3;
  let sub = 10 - 4;
  let mul = 6 * 2;
  let div = 12 / 3;
  let rem = 10 % 3;

  println!("加算: {}", add);
  println!("減算: {}", sub);
  println!("乗算: {}", mul);
  println!("除算: {}", div);
  println!("剰余: {}", rem);
}

3. 代入演算子 (Assignment Operators)

代入演算子は、値を代入したり更新したりするために使用されます。

オペレータ同等の処理
=x = 5xに5を代入
+=x += 3x = x + 3
-=x -= 2x = x - 2
*=x *= 4x = x * 4
/=x /= 2x = x / 2
%=x %= 2x = x % 2

例:

fn main() {
  let mut x = 10;
  println!("開始: {}", x);

  x += 5;
  println!("+= 5 の後: {}", x);

  x -= 2;
  println!("-= 2 の後: {}", x);

  x *= 2;
  println!("*= 2 の後: {}", x);

  x /= 3;
  println!("/= 3 の後: {}", x);

  x %= 4;
  println!("%= 4 の後: {}", x);
}

4. 比較演算子 (Comparison Operators)

比較演算子は、2つの値を比較し、真偽値(ブーリアン)である true または false を返します。

オペレータ意味
==等しい (Equal to)5 == 5 は true
!=等しくない (Not equal to)5 != 3 は true
>より大きい (Greater than)7 > 3 は true
<より小さい (Less than)2 < 5 は true
>=以上 (Greater than or equal to)5 >= 5 は true
<=以下 (Less than or equal to)3 <= 4 は true

例:

fn main() {
  let a = 5;
  let b = 10;

  println!("5 == 10: {}", a == b);
  println!("5 != 10: {}", a != b);
  println!("5 < 10: {}", a < b);
  println!("5 >= 10: {}", a >= b);
}

5. 論理演算子 (Logical Operators)

論理演算子は、ブーリアン値を組み合わせて扱うために使用されます。

オペレータ名前説明
&&論理積 (AND)両方の値が true の場合に true
||論理和 (OR)少なくとも一方が true の場合に true
!論理否定 (NOT)ブーリアン値を反転させる

例:

fn main() {
  let logged_in = true;
  let is_admin = false;

  // 一般ユーザーかどうか(ログイン済み かつ 管理者ではない)
  println!("一般ユーザー: {}", logged_in && !is_admin);
  
  // 何らかのアクセス権限があるか(ログイン済み または 管理者)
  println!("アクセス権限あり: {}", logged_in || is_admin);
  
  // ログインしていない状態
  println!("未ログイン: {}", !logged_in);
}