Menu
Coddy logo textTech

混合形状のテーブル

CoddyのLuaジャーニー「Luau入門」セクションの一部。レッスン 18/73。

配列は1つの型の多くの値を保持し、マップは1つのキー型と1つの値型を保持します。しかし、最も一般的なLuaのテーブルでは、named fieldsの中に型が混在します。string型の名前、number型のscore、boolean型のフラグを持つplayerなどです。Luauでは、これらをshapeで型付けします。これは、各fieldとそのownの型を列挙するテーブル型です。

type Point = {x: number, y: number}

local origin: Point = {x = 0, y = 0}
print(origin.x)

typeキーワードはtypeエイリアスを作成します。これはshapeに対する再利用可能な名前です。これはcheckerのためだけに存在し、Pointという名前のランタイム値は作成されません。各fieldにはそれぞれ異なる型を指定できます。

type Player = {name: string, score: number, active: boolean}

local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)

shapeを宣言すると、checkerはplayer.scoreがnumberであることを認識し、間違いを早期に警告します。たとえばplayer.scroeのような誤字(そのようなfieldは存在しません)や、player.score = "high"の代入(型が違います)です。これが最初の体験です。後の章では、shape、optionalなfield、methodについてさらに詳しく掘り下げます。

challenge icon

チャレンジ

簡単

3つのフィールドを持つshapeの型エイリアスPlayerを定義してください:name: stringscore: numberactive: boolean

名前"Rio"、スコア1500activetrueに設定したlocal player: Playerを作成してください。

それぞれを別の行に出力してください:

  1. playerの名前
  2. playerのスコア
  3. playerのactiveフラグ
  4. フィールドから文字列補間を使って作成した、正確な行Rio has 1500 points

自分で試してみよう

-- ここにコードを書いてください
-- 1) type Player = {name: string, score: number, active: boolean}
-- 2) player を作成: Player = {name = "Rio", score = 1500, active = true}
-- 3) name, score, active を出力し、その後補間されたサマリー行を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Luau入門のすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ