型付き配列
CoddyのLuaジャーニー「Luau入門」セクションの一部。レッスン 13/73。
Typed arrays は、型安全性を保ちながら複数の値を整理するための、Luau の最も便利な機能の 1 つです。
Lua では、array は位置 1, 2, 3, … に values を持つ単なる table であり、number、string、boolean をすべて同時に問題なく格納できます。Luau では、{Type} 構文を使って、table に 1 種類の type の要素だけを含めるように declare できます。
local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}typed array を declare すると、Luau の type checker によって、declare した type の values だけが入ることが強制されます。{number} array に string を insert すると、コードが実行される前、編集中に type error が発生します。
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ 型エラー: string は number ではありませんLua の table についてすでに知っていることはすべて引き続き当てはまります。arrays は 1-based(scores[1] は first element)で、#scores は length です。また、table.insert / table.remove は通常どおり動作します。annotation が追加するのは安全性であり、新しい runtime behavior ではありません。
チャレンジ
簡単numbers のみを保持できる、85、92、78 で初期化された、scores という名前の型付き配列を作成してください。
文字列のみを保持できる、"Alice"、"Bob"、"Charlie" で初期化された、studentNames という名前の2つ目の型付き配列を作成してください。
次に、それぞれを独自の行に出力してください:
- 最初のスコア
- スコアがいくつあるか(
#を使用) - 2つ目の学生名
自分で試してみよう
-- ここにコードを書いてください
-- 1) scores: {number} と studentNames: {string} を宣言する
-- 2) 最初のスコア、scores の数、および2番目の名前を出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Luau入門のすべてのレッスン
7プロジェクト:Typed Task Manager
プロジェクト:タスクの型定義タスクを追加する関数自分で練習してみよう: Luaオンラインコンパイラ