型付き配列
CoddyのLuaジャーニー「Luau入門」セクションの一部 — レッスン 13/73。
typed arrays は、型の安全性を保ちながら複数の `values` を整理するための、Luauの最も便利な機能の1つです。
Luaでは、配列は位置 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` 配列を `declare` すると、Luauの `type` チェッカーは `declare` された `type` の `values` のみが含まれるように適用します。{number} 配列に `string` を `insert` すると、コードが実行される前の編集段階で `type` `error` が発生します:
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ 型エラー: string は number ではありませんLuaの `table` についてすでに知っているすべてのことが引き続き適用されます。`arrays` は 1-based(scores[1] が `first` 要素)、#scores は長さであり、table.insert / table.remove は通常通り動作します。アノテーションは安全性を追加するものであり、新しい実行時動作を追加するものではありません。
チャレンジ
簡単数値のみを保持できる scores という名前の型指定された配列を作成し、85、92、および 78 で初期化します。
文字列のみを保持できる studentNames という名前の2つ目の型指定された配列を作成し、"Alice"、"Bob"、および "Charlie" で初期化します。
その後、それぞれ新しい行に以下を出力します:
- 最初の score
- score の個数 (
#を使用) - 2番目の student name
自分で試してみよう
-- ここにコードを書いてください
-- 1) scores: {number} と studentNames: {string} を宣言する
-- 2) 最初のスコア、scores の数、および2番目の名前を出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Luau入門のすべてのレッスン
7プロジェクト:Typed Task Manager
プロジェクト:タスクの型定義タスクを追加する関数