Menu
CoddyTech

引数のデフォルト値

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

オプションのパラメーターを使うと、処理する必要のあるnilが残ります。多くの場合、本当に必要なのはフォールバック値です。「呼び出し元が指定しなかったら、Xを使う」ということです。Luauではシグネチャにデフォルト値を書く構文はありません(greeting: string = "Hello"のようには書けません)。代わりに、型を付けて従来のLuaのイディオムを使います。

function greet(name: string, greeting: string?): string
    greeting = greeting or "Hello"
    return `{greeting}, {name}`
end

print(greet("Alice"))            -- Hello, Alice
print(greet("Alice", "Howdy"))   -- Howdy, Alice

パラメーターにはオプションであることを示す注釈(string?)が付いており、本体の最初の行でnilをデフォルト値に置き換えます。nilは偽値なので、この方法は機能します。nil or "Hello"は"Hello"と評価されます。この行の後は、greetingがもはやnilにならないことを型チェッカーが認識します。

challenge icon

チャレンジ

簡単

省略可能なパラメーターにデフォルト値を設定します。

  1. local function calculateTax(price: number, rate: number?): numberと書きます。
  2. 最初の行はrate = rate or 0.05です。その後、price * rateを返します。
  3. calculateTax(100)とcalculateTax(200, 0.08)を出力します。

コードを実行を押します。出力には5、次に16と表示されます。

自分で試してみよう

-- 1) calculateTax(price: number, rate: number?): number
--    `or` を使った定番の書き方で rate のデフォルト値を 0.05 にする
-- 2) calculateTax(100) と calculateTax(200, 0.08) を出力する

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

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