Rust の演算子
1. 演算子(オペレータ)
演算子(オペレータ)は、値や変数に対して特定の操作を行うために使用されます。
Rustでは、以下のような多くの一般的なオペレータをサポートしています。
- 算術演算子 (Arithmetic Operators)
- 代入演算子 (Assignment Operators)
- 比較演算子 (Comparison Operators)
- 論理演算子 (Logical Operators)
2. 算術演算子 (Arithmetic Operators)
算術演算子は、基本的な数学的計算を行うために使用されます。
| オペレータ | 名前 | 例 | 結果 |
|---|---|---|---|
| + | 加算 (Addition) | 5 + 3 | 8 |
| - | 減算 (Subtraction) | 5 - 3 | 2 |
| * | 乗算 (Multiplication) | 5 * 3 | 15 |
| / | 除算 (Division) | 10 / 2 | 5 |
| % | 剰余 (Remainder / Modulus) | 10 % 3 | 1 |
例:
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 = 5 | xに5を代入 |
| += | x += 3 | x = x + 3 |
| -= | x -= 2 | x = x - 2 |
| *= | x *= 4 | x = x * 4 |
| /= | x /= 2 | x = x / 2 |
| %= | x %= 2 | x = 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);
}