Menu
CoddyTech

値を返さない関数

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

多くの関数は値を計算しません。メッセージを出力したり、テーブルを更新したり、状態を保存したりと、何かを行います。Luauでは、空の戻り値型()を使って、関数が何も返さないことを注釈できます。

local function logMessage(message: string): ()
    print(message)
end

local counter = 0
local function incrementCounter(): ()
    counter += 1
end

TypeScriptを知っているなら、()はvoidの役割を果たします。ただし、Luauでは空の括弧を2つ並べて表記し、文字どおり「戻り値が0個」という意味です。

注釈は省略できます。付けなければ、Luauは関数が何も返さないと推論します。: ()と明示的に書くことで、意図が伝わります。シグネチャを読む人は誰でも、この関数が結果ではなく副作用のために呼び出されると分かります。

実行時には何も変わりません(いつもどおりです)。return値のない関数は、結果を受け取ろうとすると、通常のLuaと同様に単にnilを返します。

challenge icon

チャレンジ

簡単

出力して何も返さない関数を2つ書きましょう。

  1. local function displayWelcome(userName: string): ()を書いて、`Welcome, {userName}!`を出力します。
  2. local function logError(errorMessage: string): ()を書いて、`ERROR: {errorMessage}`を出力します。
  3. displayWelcome("Alice")を呼び出し、その後にlogError("Invalid input")を呼び出します。

コードを実行を押します。出力にはWelcome, Alice!とERROR: Invalid inputが表示されます。

自分で試してみよう

-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) displayWelcome("Alice") を呼び出し、次に logError("Invalid input") を呼び出す

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

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