LoginSignup
5
4

More than 5 years have passed since last update.

[lua] 関数の記述順を変更したい場合の対応

Posted at

lua言語は上から順番にソースを評価していくため、サブ関数を呼び出し側よりも上に書く必要があります。例えばこんなかんじ。

local function hoge1()
    print("hoge!")
end

local function hoge2()
    hoge1()
end

hoge2()

しかし、イベントドリブンなコードを書いていたりすると関数同士が呼び合ったりしてなかなか順番を揃えられないことがあります。そこで関数定義だけを事前に宣言して中身を後で記述する必要があるのですが、決まった記述形式がないため以下のように書いて対応するようです。

local hoge1, hoge2

hoge1 = function()
   hoge2()
end

hoge2 = function()
    print("hoge!")
end

hoge1()

ほほう、なるほどね。関数も変数のように扱えるってのは色々応用が効いて便利ですね。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4