Luaのコーディング規約と整形ツールの使い方|読みやすいスクリプトを書く
Lua プログラミング ゲーム開発
結論
インデントはスペース2つまたは4つで統一。 Luaは自由度の高い言語ですが、RobloxやUnity(MoonSharp)などの環境ごとに推奨されるスタイルガイドに従うのが一般的です。
基本の規約例
| 項目 | 推奨される記述 |
|---|---|
| 変数名 | ローカル変数は lowerCamelCase または snake_case |
| 定数 | すべて大文字 UPPER_SNAKE_CASE |
| コメント | 単一行は -- 、複数行は --[[ ... ]] |
🌙 この場でLuaを整形する
Lua特有の注意点
- グローバル変数を避ける — デフォルトでグローバルになるため、常に
localキーワードを付けるのが鉄則です。 - 配列のインデックスは1から — 他の多くの言語と異なり、テーブル(配列)の開始インデックスは
1です。 - セミコロンは任意 — 行末の
;はあってもなくても動作しますが、省略するのが一般的です。
なぜフォーマッターを使うのか
Luaは if ... then ... end や function ... end など、ブロックの終わりを end で示すため、ネストが深くなると構造を見失いやすくなります。自動整形ツールを導入することで、ネストの崩れによる構文エラーや論理ミスを未然に防ぐことができます。
関連記事
あわせて読むと理解が深まる関連記事をまとめました。
| トピック | 記事 |
|---|---|
| Lua Formatter | Lua Formatter|Roblox・ゲーム脚本の整形 |
| Redisキャッシュスタンピード防止ガイド | Redisキャッシュスタンピード防止ガイド|Singleflight・Mutex・SET NX・確率的早期失効 |
| 1フレームは何秒・何ms? 60fpsと120fpsの計算方法 | 1フレームは何秒・何ms? 60fpsと120fpsの計算方法 |
| AIクローラー対応 robots.txt・llms.txt 設定ガイド 2026 | AIクローラー対応 robots.txt・llms.txt 設定ガイド 2026|GPTBot・ClaudeBot・Google-Extended・GEO戦略 |
| APIキャッシュ設計ガイド | APIキャッシュ設計ガイド|ETag・Cache-Control・304・CDNキャッシュキーの実務 |
| Web APIのエラーハンドリング設計 | Web APIのエラーハンドリング設計|RFC 9457・error_code・400/422/409の使い分け |
| Web APIのべき等性(Idempotency)設計 | Web APIのべき等性(Idempotency)設計|二重決済を防ぐ実装ガイド |
| API設計におけるページネーションの使い分け:オフセット型とカーソル型の比較 | API設計におけるページネーションの使い分け:オフセット型とカーソル型の比較 |
| APIのレート制限(Rate Limiting)実装ガイド | APIのレート制限(Rate Limiting)実装ガイド|アルゴリズム選定と429エラーの適切なハンドリング |
| APIデバッグで使うツールの使い分け | APIデバッグで使うツールの使い分け|JSON整形・JWT・Base64のワークフロー |
| Aspect Ratio 計算 | Aspect Ratio 計算|16:9・4:3 解像度一覧 |
| Astro Content Collections でブログを構築する | Astro Content Collections でブログを構築する |