関数をコードする

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

機能 は、スクリプトで複数回使用できる指示のセットです。プリメイドの関数 (またはメソッド) は、print()task.wait() のように、ほとんどのプログラミング言語に組み込まれています。コーダーは、使用したいコードを複数回使用するための独自のカスタム関数を作成できますが、何度も書き換える気分にはならないようです。Luau では、これを行うには、次のようにタイプします: local function nameOfTheFunction()

機能はレシピのように考えることができる。両方とも特定の指示のリストです。たとえば、機能を使用してロボットにスパゲッティを作る方法を教えることができます。まず、local function を作成して、メニューを準備するためのステップをリストします。それから、ディナーを食べたいときは、「ロボット、makeSpaghetti()を実行してください」と言えばよい。

夕食を作るための手順は次のように見えるかもしれません:

  1. お湯を沸かす
  2. パスタを追加
  3. 15分料理する
  4. ソースを追加
  5. プレートにサーブする

コードバージョンは、このようなものに見えるかもしれません:


local function makeDinner()
-- インストラクション一覧
end
-- コードを実行するように告げる
makeDinner()

関数を作成する

練習するには、最初の関数が出力ウィンドウにお気に入りの食べ物を印刷します。使用するスクリプトを最初に設定します。方法を覚えていない場合は、ここにリマインダーがあります:

  1. ServerScriptService で新しいスクリプトを作成します。
  2. スクリプト名を変更 FunctionsPractice
  3. 削除 "Hello World"
  4. 最上部にコメントを追加します。例: -- Prints your favorite food

次に、関数を作成して名前を付けます。すべての機能には、目的を覚えるのに役立つ名前があるべきです。機能名は大文字で始まり、最初の文字は小文字、次の単語は大文字です。

例: addPoints()restartGame()rainFlamingLlamas()

  • タイプ local function printFood() 、そしてキーボードで Enter を押します。機能が自動完了して、次のように表示されるはずです:

local function printFood()
end

関数にコードを追加する

機能のコード全体が local function printFood()end の間にタイプされなければなりません。これらの 2 つのポイントの間にないコードは、機能が実行されるときに実行されません。


local function printFood()
-- コードはここで実行され、機能が呼び出されると
end
-- Code here will not run

機能内にある情報、または機能によって使用できる情報は、 スコープ 内にある。

  • local function printFood()end の間で、お気に入りの食べ物を表示するには、print() を使用します。

local function printFood()
print("Curry!")
end

機能を実行するように伝える

機能が動作する前に行う必要のあるもう一つのことは、機能を実行するように伝えることであり、これは 呼び出し とも呼ばれます。機能は呼び出されるまで実行されません機能を呼び出すには、機能の名前を含めて () を最後に入力します。

  1. end の下で、printFood() を入力します。


    local function printFood()
    print("Curry!")
    end
    printFood()
  2. コードをテストします。お気に入りの食べ物が出力ウィンドウに表示されるはずです。

問題解決のヒント

コードが実行されない場合は、以下のようなエラーを確認してください:

  • チェックしてください print("Your Food Here")local function printFood()end の間にあるかどうか
  • それを食べ物として、"each side" に引用符が付いた文字列にします。
  • 機能が作成された後に呼び出されているかどうかをチェックします。printFood()end より下になるべきです。