Menu
CoddyTech

形状が混在するテーブル

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

配列は1つの型の値を多数保持し、マップは1つのキーの型と1つの値の型を保持します。しかし、Luaのテーブルで最もよく使われるのは、名前付きフィールドに複数の型が混在するものです。たとえば、文字列の名前、数値のスコア、真偽値のフラグを持つプレイヤーです。Luauでは、これらを各フィールドとその型を列挙したテーブル型、つまり形状として型付けします。

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

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

typeキーワードは型エイリアスを作成します。形状に付ける、再利用可能な名前です。これは型チェッカーでのみ使われ、実行時にPointという名前の値は作成されません。フィールドごとに異なる型を指定できます。

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

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

形状を宣言すると、型チェッカーはplayer.scoreが数値だと認識し、間違いを早期に検出します。たとえば、player.scroeのようなタイプミス(そのようなフィールドはありません)や、player.score = "high"の代入(型が違います)です。ここではまず基本を学びます。後の章では、形状、オプションのフィールド、メソッドについてさらに詳しく学びます。

challenge icon

チャレンジ

簡単

形状型を使ってプレイヤーを記述しましょう。

  1. type Player = {name: string, score: number, active: boolean}と記述します。
  2. local player: Player = {name = "Kai", score = 900, active = false}を作成します。
  3. player.activeを出力し、次に`{player.name} has {player.score} points`を出力します。

Run Codeを押すと、出力にfalseとKai has 900 pointsが表示されます。

自分で試してみよう

-- 1) type Player = {...}
-- 2) local player: Player = {...}
-- 3) activeフラグを出力し、次に要約行を出力する

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

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