Menu
Coddy logo textTech

何も返さない関数

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

多くのfunctionは値を計算しません。functionは何かをします。メッセージを表示したり、テーブルを更新したり、状態を保存したりします。Luauでは、空の戻り値型()を使って、functionがnothingを返すことを注釈できます。

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

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

TypeScriptを見たことがあるなら、()voidの役割を果たしますが、Luauでの表記は空の丸括弧のペアで、文字どおり「戻り値ゼロ」を意味します。

注釈は省略可能です。省略すると、Luauはfunctionが何も返さないと推論します。: ()と明示的に書くことで意図を文書化できます。シグネチャを読む人は誰でも、このfunctionが結果ではなく副作用のために呼び出されることを理解できます。

実行時には何も変わりません(いつもどおりです)。return値のないfunctionの結果を取得しようとすると、単にnilが生成されます。これは通常のLuaと同じです。

challenge icon

チャレンジ

簡単

displayWelcomeという名前のfunctionを作成します。このfunctionuserName: stringを受け取り、明示的な戻り値の型として()を持ちます。次の内容を出力します:"Welcome to our application, [userName]!"

logErrorという名前のfunctionを作成します。このfunctionは戻り値の型が()で、errorMessage: stringを受け取ります。次の内容を出力します:"ERROR: [errorMessage]"

パラメーターを受け取らず、戻り値の型が()であるprocessDataという名前のfunctionを作成します。"Processing data..."を出力し、次の行に"Data processing complete."を出力します。

次の順序でこれらを呼び出します:

  1. displayWelcome("Alice")
  2. processData()
  3. logError("Invalid input detected")
  4. displayWelcome("Bob")

自分で試してみよう

-- ここにコードを書いてください
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- 次に呼び出す: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
quiz icon腕試し

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

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

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