ワールドトリガーでプログラミング言語Rustを学ぶ試み
ワールドトリガーの世界観を使って Rustの基礎知識 を解説します!
Rustの特徴である「所有権」「借用」「安全性」などの概念を、ワールドトリガーの「トリオン」「トリガー」「チーム」になぞらえて説明します。
✨1.変数とデータ型 - トリオンとトリガー
Rustにおける 変数 は、ワールドトリガーでいう トリオン(エネルギー)や トリガー(武器・能力)みたいなものです。
Rustの変数宣言
let trion = 10; // トリオン量を変数で宣言
let trigger = "弧月"; // 使用するトリガーを文字列で保持
💩説明
• let は「トリオンを生成して使う」宣言みたいなものです。
• Rustでは変数は デフォルトで不変(変更できない)です。
→ トリオンやトリガーは 簡単には変えられません。
✨2. 可変変数(mut)- 自由に使えるトリオン
一度使ったトリオン量やトリガーを 変更 したい場合、Rustでは「可変変数(mut)」を使います。
Rustの例
let mut trion = 10; // 可変のトリオン量
trion = trion - 2; // トリオンを消費
println!("残りのトリオン: {}", trion);
💩ワートリ風の説明
• 「可変変数」は 自由にトリオン量を変更できる状態 です。
• 例:空閑遊真のトリオン量を減らして「弧月」を振る。
• mut を付けないと、固定されたトリオン量から変えられません。
✨3. 所有権 - トリガーの管理者
Rustの 所有権 は、ワールドトリガーでいう トリガーの管理者(使い手) みたいなものです。
• トリガーを 誰か1人 が使っている間、他の人は使えません。
• 所有権を移すことで、他の人に使わせることができます。
Rustの例
fn use_trigger(trigger: String) {
println!("{}を発動!", trigger);
}
fn main() {
let trigger = String::from("弧月");
use_trigger(trigger); // 所有権を use_trigger 関数に渡す
// println!("{}", trigger); // エラー!もう trigger の所有権はない
}
💩ワートリ風の説明
• trigger は 弧月 です。
• 所有権を 関数(use_trigger) に渡すと、その関数がトリガーを使います。
• トリガーは1人の使い手しか持てないので、元の使い手(main関数)にはもう弧月は使えません。
✨4. 借用 - トリガーを一時的に貸す
「所有権」を完全に渡すのではなく、トリガーを 一時的に借りる ことができます。
これが Rust の 借用(&)です。
• 不変借用(&T): トリガーを借りて「見るだけ」。
• 可変借用(&mut T): トリガーを借りて「一時的に使う」。
不変借用(&T)の例
fn check_trigger(trigger: &String) {
println!("{}を確認しました!", trigger);
}
fn main() {
let trigger = String::from("弧月");
check_trigger(&trigger); // 弧月を借りる(不変借用)
println!("まだ弧月を持っています: {}", trigger);
}
💩ワートリ風の説明
• 不変借用は、トリガーを「見るだけ」の状態です。
• 例:修や遊真が「弧月の状態」を確認している。
可変借用(&mut T)の例
fn modify_trigger(trigger: &mut String) {
trigger.push_str("改!"); // トリガーを強化
}
fn main() {
let mut trigger = String::from("弧月");
modify_trigger(&mut trigger); // 弧月を一時的に借りて変更する
println!("新しいトリガー: {}", trigger);
}
💩ワートリ風の説明
• 可変借用は、トリガーを 一時的に貸して使わせる 状態です。
• 例:木崎隊がトリガーを強化して渡す。
✨5. 借用のルール - チームプレイの制限
Rustの借用には ルール があります(借用チェッカー)。
1. 不変借用(見るだけ)は、いくつでも同時にできます。
→ 修と千佳が「同じトリガーの状態」を見ても問題なし。
2. 可変借用(使う)は、1つだけしかできません。
→ 弧月を1人が使っていると、他の人は使えません。
3. 不変借用と可変借用は同時に存在できない。
→ 弧月を修が確認している時に、遊真が使おうとするとエラー!
違反する例
fn main() {
let mut trigger = String::from("弧月");
let r1 = &trigger; // 不変借用
let r2 = &mut trigger; // 可変借用 → エラー!
println!("{}", r1);
}
まとめ
✨ワールドトリガーを例にすると、Rustの基礎概念が次のように理解できます:
💩Rustの概念 ワートリの例 説明
変数とデータ型 トリオンやトリガー データや型の保持
可変変数(mut) トリオンを消費して使う 値を変更する変数
所有権 トリガーの使い手 データを誰か1人が持つ
不変借用(&T) トリガーを見せる・確認する データを「見るだけで借りる」
可変借用(&mut T) トリガーを一時的に貸して使わせる データを「一時的に変更するために借りる」
このように、ワールドトリガーの世界観(トリオン、トリガー、チームルール)を使えば、Rustの複雑な概念も楽しく学べます