Menu
CoddyTech

インラインでの形状のアノテーション

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

Luaでは、長い間テーブルをレコードとして使ってきました。local user = {name = "Ana", age = 20}。フィールド名を間違えたり、フィールドを忘れたり、数値を入れるべきところに文字列を格納したりしても、何も止めてくれません。コードを実行して初めて気づきます。

Luauでは、宣言の中で中括弧の間に各フィールドとその型を列挙して、テーブルの形状を記述できます。

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

これまでに学んだテーブル型と比べてみましょう。{number}は配列を表し、{[string]: number}は任意の文字列キーを持つマップを表します。形状はより具体的です。各フィールドに個別の名前を付け、それぞれに独自の型を指定します。

形状を宣言すると、編集時に型チェッカーがテーブルと照合します。フィールドが足りなかったり、値の型が間違っていたりすると、コードを実行する前に警告されます。

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ 型エラー: string は number ではありません
}

いつもどおり、この型注釈によって実行時の動作が変わることはありません。テーブルは通常のLuaテーブルです。インラインの形状は、再利用する予定のない一度限りの構造に最適です。次のレッスンでは、形状に名前を付けます。

challenge icon

チャレンジ

簡単

宣言の中で学生のレコードを記述します。

  1. local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}を宣言します。
  2. student.nameを出力し、次にstudent.studentIdを出力します。

コードを実行を押します。出力にはSarah Johnsonと12345が表示されます。

自分で試してみよう

-- 1) インラインのシェイプ注釈を付けてstudentを宣言する
-- 2) studentのnameを出力し、次にstudentIdを出力する

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

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